Ответ: Задание свойств Slave
Контроллер SMH4 (как уже писал - отформатированная firmware из лоджика 3.32.0116). IP-адрес статический (10.15.5.11).
Шлюз Moxa MGate3480 (Modbus TCP - Modbus RTU шлюз на 4 порта). IP-адрес статический (10.15.5.12).
4 частотника ABB ACS 550, подключенные каждый к отдельному порту шлюза.
Шлюз настроен на переадресацию Modbus запросов по разным RS-485 портам в зависимости от того, на какой TCP-порт приходит запрос.
TCP-порт <-> RS-485
10011 <-> №1
10021 <-> №2
10022 <-> №3
10012 <-> №4
Соответственно, в контроллере также настроены соединения со слейвами через Modbus TCP с учетом шлюза (модбас адреса частотников тоже прописаны, тут не пишу):
ПЧ1 - адрес: 10.15.5.12, порт: 10011
ПЧ2 - адрес: 10.15.5.12, порт: 10021
ПЧ3 - адрес: 10.15.5.12, порт: 10022
ПЧ4 - адрес: 10.15.5.12, порт: 10012
Количество попыток связи везде = 3
Время возобновления опроса = 5 сек
Таймаут для TCP/IP = 500 мсек.
Проблема собственно.
В какой-то момент, вероятно, из-за недополученных ответов или еще черт знает чего, контроллер перестает посылать запросы на шлюз. Сначала на один порт, потом - на другой и т.д.
Как я это понял?
Во-первых, на шлюзе для каждого RS-485 порта есть индикатор активности. И через некоторое время работы индикаторы порта потихоньку перестают показывать эту самую активность. То есть, они даже не отсылают запросы в RS-485.
Во-вторых, в программе я вывел количество ошибок связи для каждого частотника на экран (с выходов Error блоков Slave (Link)). Для "отказных" слейвов счетчик ошибок не растет. Следовательно (учитывая отсутствие активности на портах Моксы), и запросы не отправляются.
Можно было подумать, что либо Мокса чудит, либо частотник не отвечает, либо сразу оба варианта.
Однако, отправляю с компьютера на Моксу запрос на соответствующий порт (откуда контроллер уже не читает) и получаю нормальный ответ.
После перезагрузки контроллера связь восстанавливается, но через какое-то время опять постепенно отключается.
|