Тема: Потеря данных в базе данных
Добрый день! У нас на предприятии 5 контроллеров в локальной сети. С всех 5ти контроллеров в произвольное время и в произвольном количестве теряются данные о воде\выходе. К примеру в среднем в день около 10000 действий и из них 30-40 действий теряются!
Грешить на конкретный контроллер не получается, так как у нас их 5 (4 SCM-NET2 и 1 SCM-IP)
С диодами и проводкой все замечательно - все уже перетягивалось и менялось, но все ровно теряются события.
Версия ПО 7.0.15 и прошивка в контроллерах самая последняя.
что еще можно сделать я уже не знаю
А как вы выяснили, что события теряются?
На предприятии есть система, работающая с базой данных коменданта. Сделано это для того, чтобы была возможно видеть, где на данный момент находится сотрудник + для расчет рабочего времени сотрудника.
и есть случаи, когда сотрудник прикладывает карту, замок размыкается - пропуская сотрудника, а само событие вход\выход не регистрируется базе данных, хотя по камерам слежения видно, что сотрудник приложил карту и спокойно вышел/вошел
А когда связь с таким контроллером появляется событие в базу попадает? (потому как если контроллер пустил карту то событие в его памяти однозначно записано и будет вычитано при ближайшем соединении с БД)
а вот тут самое интересное, у меня на втором мониторе открыт служба связи с контроллерами + монитор событий. Судя по службе связи - все нормально, связь не пропадает. Но событий в базе данных нет
Я раньше думал что проблема во флуде в нашей локально сети - провел выделенную локальную сеть только под контроллеры. Но результат остался тем же
Дело в том, что если, допустим, событие 1,2,3,4,5, .. зафиксированы контроллером, то 4 событие не попадет в базу данных пока не будет вычитано 3-е. Т.е. после вашего “пропавшего” события следующие за таковым также не могут быть вычитаны.
Но, есть способ смоделировать подобную ситуацию, т.е. забрать 4-ое событие. Для этого понадобится второй модуль связи. Обычно, подобное случается когда после тестов люди забывают убить лишние копии модуля связи, которые и выдергивают события.
Вот скриншот всех модулей с отображением удаленных модулей
Я имел в виду не “модуль связи” (как функциональную часть), а второй экземпляр запущенной службы связи. И вот еще что, возможно пропадание событий если во время срабатывания контроллер уходит в перезагрузку. Обычно это бывает из-за сбоев по питанию.
События могут теряться, когда в момент срабатывания замка, чаще всего электромеханического, контроллер перезагружается из-за нехватки тока блока питания или слишком тонкого и длинного провода. То же самое возможно и с электромагнитным замком. Питание замка желательно пускать отдельным проводом, а электромеханический замок лучше от отдельного блока питания. Возможно также, что замки подключены минусом не на клемму блока питания, как на схеме подключения, а на дополнительные минусовые клеммы контроллера. Еще бывает, когда в электромагнитном замке стоит собственная электроника и она препятствует гашению электромагнитного импульса диодом. Он должен быть подключен непосредственно к обмотке замка. Также возможно пропадание данных внутри компьютера. Чтобы понять, было ли событие считано, можно включить лог связи с контроллерами и затем выслать нам кусок лога в пределах того времени, когда не было события, можно будет определить с какой стороны проблема. Кроме тех случаев, когда запущено несколько служб связи.
сейчас запущена только одна служба связи, специально просмотрел все машины, где когда либо была установлена данная служба.
Как именно включить лог связи с контроллерами?
чтобы убедится что служба была одна, я ее отключил и события перестали поступать в базу данных.
Если магнитные замки (а у нас только они) запитывать отдельным блоком питания на 12В, то как правильно смонтировать схему. На схемах подключения на вашем сайте такого нет.
Включение лога в свойствах точки доступа, программные настройки.
Ваш способ проверки наличия второй службы не правилен, ибо дело не в двух службах для одной БД (тогда события не пропадали бы, ибо обе службы сгружали бы логи в одну БД). Проблема возникает, когда вторая служба работает со своей БД (это может быть как еще одна БД на том же СУБД, так и на стороннем).
как правильно смонтировать схему.
Последовательно реле входа, реле выхода, блок питания, замок. Экспериментировать лучше на одном контроллере.
оказывается, логи были подключены уже давно. Где можно их найти? как раз смогу вам выслать часть логов с пропусками
Включение лога в свойствах точки доступа, программные настройки.
Ваш способ проверки наличия второй службы не правилен, ибо дело не в двух службах для одной БД (тогда события не пропадали бы, ибо обе службы сгружали бы логи в одну БД). Проблема возникает, когда вторая служба работает со своей БД (это может быть как еще одна БД на том же СУБД, так и на стороннем).
У нас всего одна БД и 1 служба связи
Логи контроллеров лежат в папке службы связи с контроллерами, различаются по IP адресам в названиях файлов.
В свойствах точки доступа могут быть включены такие функции как “не читать карту если открыта дверь” и т.п. проверьте, это тоже может быть причиной.
Если БД и служба связи одна, то перепроверяем все остальное.
Попробуйте отловить этот эффект и установить хоть какую-нибудь зависимость. В противном случае ходить по кругу можно очень долго.