PDA

Просмотр полной версии : Частичное "зависание" связки ПЛК100+ПМ01 при передаче СМС



victor_al
06.09.2012, 19:48
Столкнулся с определенной проблемой:
Модем подключен по RS-232 к ПЛК. При приходе СМС она сразу идет в порт, не задерживаясь в модеме. Контроллер следит за пришедшем в порт и парсит. Отправляет СМС в текстовом формате.
Все прекрасно работает.

Однако, если на секунду щелкнуть выключателем питания (выключить и включить), то в 50% случаев происходит странное зависание: по одиночке и контроллер, и модем работают штатно. НО! СМС не приходят и не отправляются. Это проверено на очень большом кол-ве устройств.

Если к питанию тупо подключить АКБ или ИБП, то все работает. То есть импульсные помехи и шорох вроде не влияют на это. Если выключить на более чем 5 минут, то тоже все работает без АКБ.

Есть предположение, что меняется какой-то адрес в памяти при пропадании питания.

Для начала хочу сделать так, чтобы при пропадании питания, все переменные сразу обнулялись и программа стартовала сначала (сейчас по умолчанию после 5-ти минут без питания). Где это выставить?

Что это и как лечить? Есть предложения?

capzap
06.09.2012, 20:09
сразу же вопрос, а потестить как себя ведет связка модем-плк по 485 интерфейсу не пробовали. И при пропадании сети на плк помоему остается рабочим только Ethernet порт, остальные отключаются, но это надо либо у техподдержки уточнить или по форуму поискать. Всё это к тому что порт на плк придется перезапускать, скорее всего, чтоб достучаться до модема, если же с соединением всё нормально, тогда перед отправкой специалисты советуют подать две команды АТ, а при скоростях больше 19200 можно и один раз, это нужно для синхронизации

victor_al
06.09.2012, 20:25
Не пробывал по 485.

Проверить можно еще, полностью отключив 10-ти минутное хранение состояния после пропадания питания. В принципе, это более предпочтительно в моем случае. Как это сделать не знаете?


При случайном отключении основного питания контроллер переходит на аварийное питание и
сохраняет промежуточные результаты вычислений и работоспособность интерфейсов
Ethernet и Debug RS'232 в течение 10 минут.

Кстати, у меня каждые 5 минут посылается AT CREG и переподключает питание на модеме, если нет регистрации в сети или модем не ответил (тестил без антенны и отбрасывал шлейф модема). Так вот при таком частичном зависании питание модема не передергивается.

capzap
06.09.2012, 21:02
судя по цитате, нормальный RS'232 перестает работать, значит добавляете в конфигурацию плк модуль статистика и следите за передним фронтом переменоой отвечающей за питание, как только оно появилось, закрывает а затем инициализируете принудительно СОМ-порт

victor_al
06.09.2012, 21:23
А это мысль! У меня есть слежение за питанием и посыл смс при его отсутствии. Вставлю код передергивания com-порта и отпишусь.
Только будет это в понедельник вечером.

victor_al
10.09.2012, 21:30
Взял первое попавшееся устройство, произвел описанную выше манипуляцию с питанием, а контроллер напрочь отказался хранить переменные в памяти. Всегда после прекращения подачи питания запускает программу с нуля. Дата выпуска 2012. Прошивка v.2.14.0. Не зависает. Код поправил, как попадется зависающий контроллер, протестирую.

Дмитрий Артюховский
19.09.2012, 09:29
Подобные проблемы могут быть связаны с различными скоростями портов модема и контроллера. При включении питания модем устанавливает скорость по умолчанию, после первой посылки должен переходить на скорость контроллера... Так вот, при передергивании питания и поисходит данное рассогласование, импульс включения воспринимается модемом как входящая посылка и он переходит на непонятную скорость обмена...
Выход - 1. принудительно записать в модем скорость обмена по умолчанию, есть специальная команда, но сам не пробовал;
2. после подачи питания и загрузки контроллера выполнить сброс - восстановление питания модема, и посылать инициализирующую команду, способ надежно работает;

Загнетов
19.09.2012, 17:28
сразу же вопрос, а потестить как себя ведет связка модем-плк по 485 интерфейсу не пробовали. И при пропадании сети на плк помоему остается рабочим только Ethernet порт, остальные отключаются,

на ПЛК-100
RS-232 (не отладочный) работает не менее 5 минут после отключения питания, проверял терминалом через COM порт

Загнетов
19.09.2012, 17:41
Подобные проблемы могут быть связаны с различными скоростями портов модема и контроллера. При включении питания модем устанавливает скорость по умолчанию, после первой посылки должен переходить на скорость контроллера... Так вот, при передергивании питания и поисходит данное рассогласование, импульс включения воспринимается модемом как входящая посылка и он переходит на непонятную скорость обмена...
Выход - 1. принудительно записать в модем скорость обмена по умолчанию, есть специальная команда, но сам не пробовал;
2. после подачи питания и загрузки контроллера выполнить сброс - восстановление питания модема, и посылать инициализирующую команду, способ надежно работает;

позвольте добавить в тему микро- вопрос: модуль "modem" в конфигурации ПЛК совместим только с Овеном ПМ01 или будет корректно работать с другими модемами (требуется использовать MC52it http://www.owen.ru/forum/showthread.php?t=13427 )"

victor_al
24.09.2012, 18:31
Выход - 1. принудительно записать в модем скорость обмена по умолчанию, есть специальная команда, но сам не пробовал;
2. после подачи питания и загрузки контроллера выполнить сброс - восстановление питания модема, и посылать инициализирующую команду, способ надежно работает;

1. Делал. AT+IPR=9600
2. Делал. Модем включается после полной загрузки ПЛК.

capzap
24.09.2012, 18:37
1. Делал. AT+IPR=9600
2. Делал. Модем включается после полной загрузки ПЛК.

принудительно записать, это не только AT+IPR, а еще и AT&W ( сохранить изменения в EEPROM ) чтоб такие параметры сохранились после сброса питания

victor_al
24.09.2012, 20:18
принудительно записать, это не только AT+IPR, а еще и AT&W ( сохранить изменения в EEPROM ) чтоб такие параметры сохранились после сброса питания
Знаем ) Записывает в активный профиль.