-
как отследить разрыв связи для пм01?
здравствуйте!
использую плк 100-24-p-l + модем пм01-24-ав (rs-485).
испрользуется Gprs-соединение.
при включении контроллера модем соединяется с сервером (компьютер).
раз в 3 секунды со стороны модема идет опрос поступивших данных от сервера, при это контроллер выполняет команды и отправляет данные на модем, отсюда на сервер.
все работает без проблем, если сервер постоянно шлет на модем данные, в моем случае 5 минут.
если есть ошибки при отправке данных от модема - включается счетчик, и при достижении определенного количества неудачных ответов - закрываю порт и модем, потом опять открываю порт и соединение с модемом.
то есть работает так - пришел ответ(запрос) от сервера - отбил подтверждение + отправил данные, если надо от модема+контроллер.
но есть одно. сервер может упасть на какое то время. модем не принимает данные и не отправляет ответ. связь рвется.
так вот, если связь рвется, то логично перезагрузить контроллер (программно перевести в начало главной программы (цикла)).
есть ли способ быстро узнать для модема, что потеряна связь с сервером?
понятно, что можно отправлять пакеты и ждать подтверждения, но есть ли способ лучше?
Если есть идеи или наработки - буду рад выслушать и применить.
-
сталкивался с подобной проблемой. сервер не отслеживает состояние модема и может в следствии этого падать. для избежания подобного нужно: - разнести периодический опрос сервером слева и доставку аварийных сообщений от слейвов серверу на разные модемы.
- если сервер не вернул поддтверждение о получении данных, то слейв активирует автодозвон, до тех пор пока получит подтверждение.
небольшой пример(для 1 -го модема)
100KL_obekt_004_Kn.rar
-
Посмотрел исходники - спасибо.
Но у меня немного по другому.
Сервер написан на Delphi и он умеет отслеживать разрыв коннекта от модема.
Просто хотелось бы обратного - чтобы модем узнавал о разрыве соединения с сервером (иногда он падает), и подавал команду контроллеру на перезагрузку.
Есть ли какие то AT-команды на проверку связи?
IP-сервера является статичным.
Наверное, придется посылать тестовые команды n раз в минуту и при достижении определенного количества неотправленных пакетов - подать команду на перезагрузку.
-
модем сам не отслеживает коннект. коннект отслеживает плк и управлять перезагрузкой можно через биты состояния.
-
А что за биты состояния? Откуда они в ПЛК? Если Вы про переменную Stat то ана в этом случае не поможет, т.к. при установке связи модем не отвечает на АТ команды.
-
решение:
посылаем команду At+cipstatus
если связь нормальная - выдаст Connect Ok
если разорвана - Ip Close
тема для меня закрыта
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума