Панель СП310-Р выступает в качестве мастера Modbus TCP (адрес панели 172.16.0.100/24 шлюз 172.16.0.1).
Slave-устройство (172.16.0.11), статус связи экспортируются Конфигуратором СП300 во внутренние регистры панели (PSW256-259).
Опрос выполняется с помощью макроса 1 раз в секунду. Используется следующий код:
Код:
typedef struct regs_entry_ {
	WORD addr;
	WORD count;
	void* tm;
} regs_entry_t;

BOOL tcpReadInputRegs(regs_entry_t entry) {
	static WORD regs[256];
	if(Reads(NET_0, 1, MODBUS_TCP_REGS_3X, entry.addr, entry.count, &regs)) {
		memcpy(regs, entry.tm, 2*sizeof(entry.count));
		return TRUE;
	}
	return FALSE;
}
Всё бы хорошо, но в статусе связи счетчик полученных ответов увеличивается, а счетчики неполученных ответов, ошибок и таймаутов всегда 0 даже если к панели НЕ подключен сетевой кабель.
При этом в PSB54 (Ошибка связи с TCP Slave 1) всегда 0, а приведенный макрос всегда возвращает TRUE.

Вопрос: что не так и как узнать статус связи?