PDA

Просмотр полной версии : ПЛК 100 + ПМ01 + SMS и проблеммы



kac
15.07.2013, 12:02
Ситуация следующая имеем ПЛК100, модем ПМ01. Собрали тестовый экземпляр все прекрасно работает (SMS принимает, отвечает, объектом управляет)
Собрали щит на объекте начали обкатывать систему сразу все работает но через сутки иногда несколько все встает колом. Автоматика не выключается в положенное время, не включается. На SMS не реагирует.
Помогает железобетонно отключение питания на несколько секунд и обратное включение.

Заметили такую ситацию (сделали некий лог событий работы контроллера): Прочитать внутренние часы можно только в пустую переменную, поэтому мы каждую секунду переменную обнуляем и тут же читаем в неё текущее время, далее по этому времени включаем/выключаем исп. устройства. В какойто момент получаем следующее переменную обнулили а прочитать почему то не смогли и в логе получаем все нули какоето событие, после этого как правили около часа все востанавливается и время правильное и поехали дальше. Только вот часть операций в промежутке нулевого времени пропустили...

Ну и конечно же основная проблемма модем то он работает то не работает как его заставить делать что нибудь одно желательно первое не знаю. Все бубны порвал...

На очереди уже лежит 10 комплектов но дальше собирать их не можем...

Помогите люди добрые, добрым советом! ;)

Дмитрий Артюховский
15.07.2013, 13:51
Если работа восстанавливается - железо работает, где то косяк программирования.

Проверьте отсутствие блокирующихся операций.... начинающие частенько пытаются дождаться результата длинных операций, скажем - обмена с модемом внутри одного цикла. А для работы ПЛК следует лишь проверять флаг окончания операции, не в коем случае не ожидать завершения....

В общем случае это не правильно, но для обучения неблокирующимся операциям можно порекомендовать перевести алгоритм на условное время. Т.е. операции выполнять по внутренним тактам, формируемым скажем циклами TON, а эти такты периодически синхронизировать с аппаратными часами. (в случае ошибок с синхронизацией - продолжаем внутренние отсчеты) Таким образом у вас не выпадут операции с случае проблем с отсчетами реального времени )))

А периодические зависания модема - это у всех, раз в сутки его рекомендуется перезапускать по питанию, даже в случае нормальной работы.

Добавьте в конфигурацию модуль статистики и смотрите свободное время цикла (попробуйте вести лог его, или хотя бы фиксировать моменты перегрузки по времени)