В общем задал таймаут 0, всё равно случаются ситуации возможно из-за потерь пакетов или ещё чего, когда связь отваливается и подваливается только после записи регистра в модуль.
В связи с этим повторяются вышеописанные ситуации.
Объясню "на пальцах" что происходит. На оборудовании овен собрано управление домом. По дому находится несколько щитов с модулями и один контроллер, управление модулями происходит одновременно как с плк так и с homekit (apple). Сервер homebridge мониторит конфигурацию битовых масок модулей, чтобы, если включено освещение с выключателя, не затереть этот бит при включении светильника с планшета, плк мониторит маски, чтобы, если включено освещение с планшета, не затереть этот бит при включении другого светильника выключателем.
Вечером включается фасадное освещение автоматизацией с планшета, ночью выключается, утром снова включается и на рассвете должно выключиться. Ночью все спят, выключатели не щёлкают естественно, т.е. контроллер не пишет изменений в модули. А всё управление осуществляет homekit.
Утром homekit благополучно гасит освещение, но к этому моменту не всегда, но иногда плк уже "отваливается" от модулей, либо модули от плк, при этом плк раз в 50 мс постоянно опрашивает модули (должен), но плк отвалился на модулях ошибки 85, 89, кто-то идёт в сан. узел, нажимает на выключатель и последняя битовая маска сохранённая в плк - это маска со включённым фасадным освещением, и плк благополучно при включении света в сан. узле зажигает фасад, и жизнь налаживается, ошибки пропадают и всё продолжает шикарно работать как и должно.
Вот куда копать и что делать? Безкостыльным способом естественно. Костыльный способ изложил выше, раз в 10-20 минут писать какой-нибудь регистр в модули, чтобы связь не отваливалась.




Ответить с цитированием