PDA

Просмотр полной версии : Перезагружается ПЛК 154



Карнаухов Дмитрий
27.04.2011, 18:47
Подскажите, что можно сделать. После конфигурирования области ввода/вывода контроллер начал перезагружаться. Раз в сутки, примерно. Иногда теряется связь между SCADA и контроллером. Рабочая версии программы в приложенном файле.

Николаев Андрей
27.04.2011, 19:01
Ох ничего себе у Вас программка...
Да и опрос по сети весомый.
Если не секрет - чего столько опрашиваете, особенно в первом подмодуле ModBus TCP.
Да и по протоколу ОВЕН два десятка переменных...
При достаточно весомой программе (одних ПИДов по моему пяток) у Вас цикл ПЛК - 1мс.
Скорее всего контроллер просто не справляется.
Добавьте модуль статистика и гляньте что происходит с циклом. Скорее всего его необходимо увеличивать. При этом обязательно контролируйте обмен по сети.

Вообще такой объем обмена я бы в PLC Configuration не делал. Реализовал бы в программе мастера. ОВЕН мастер уже вообще реализован - надо просто библиотеку использовать.

Для очистки совести - считайте с ПЛК файлы log.txt и debug.txt и пришлите на plc@owen.ru с программой и комментариями

Карнаухов Дмитрий
28.04.2011, 15:10
Опрос идет I-8KE8-MTCP-G в нем 8 модулей аналогового ввода I-87017 (или аналог). В принципе все работает, но иногда связь теряется.

Цикл задачи контроллера (сейчас посмотрел) 100 мс, можно увеличить, это не критично, регуляторы пока что на втором плане.

Я плохо понимаю какие есть тонкости в конфигурировании области ввода\вывода. Все эти ньюансы не понятны, лучше ткните носом, пожалуйста. Читать умею.

Когда доберусь до объекта - будут логи.

Николаев Андрей
28.04.2011, 17:46
Гы, а чем занимается I-8KE8-MTCP-G??? :)
1. У Вас время, необходимое контроллеру, если Вы все правильно посмотрели - 100 мс (хотя скорее всего 100 раз по 100 мкс), то есть 10 мс. Уж слишком много 100мс...
А в Вашем проекте контроллеру на цикл отводится 1 мс (параметр MinCycleLen в настройках самого ПЛК - самый корень конфигурации).
Так же посмотрите оставшееся свободное время в том же модуле статистика.
Этого вполне достаточно для перезагрузки и не выполнения каких то задач (например обмена) - тупо не успевает в отведенное время.

В Конфигурации ПЛК все так. Это подтверждает то, что у Вас все работает.
Однако когда опрос достаточно большой (много параметров) я бы рекомендовал в принципе отказаться от использования PLC Configuration для настройки обмена, и весь обмен реализовывал программно, с помозью библиотек.

Вот такие общие рекомендации.

З.Ы.: Еще рекомендую почитать и посмотреть пример с многозадачностью, когда задачи по приоритетом можно вызывать в разные промежутки времени... Это не панацея, да и проект придется перепиливать. Так что скорее на перспективу.

Карнаухов Дмитрий
30.04.2011, 08:11
I-8KE8-MTCP-G это корзинка в которой восемь восьмиканальных аналоговых модулей ввода 4-20 мА. Не все используются, т.е. если это поможет - можно сократить опрос путем исключения ряда переменных модбас.

Спасибо за ответы, будем пробовать.

Карнаухов Дмитрий
01.05.2011, 11:12
Еще один момент. При попытке переписать программу контроллера полностью, не "онлайн", он уходит в перезагрузку. Для перепрошивки программы требуется выполнить заводской сброс, затем соединиться с ним, попробовать переписать программу - он перезапустится - и только тогда получается записать новую. Этот набор действий найден экспериментально.

Николаев Андрей
01.05.2011, 13:01
Обновите прошивку контроллера

amigo
04.05.2011, 15:59
Обновите прошивку контроллера

Аналогичную перезагрузку контроллера при перезаписи программы через раз наблюдаю на ПЛК-150 и время от времени на ПЛК-100. Оба с прошивкой 2.12.7.

Николаев Андрей
04.05.2011, 16:33
Аналогичные вопросы.
Программа?
Время цикла?
Сетевой обмен?
Задействованные порты?

amigo
04.05.2011, 17:14
Аналогичные вопросы.

Программа в одну строку: присваивание модбас переменной значения переменной аналогового входа.
Минимальное время цикла - 50мс.
Сетевой обмен: modbus-slave по 485-ому порту, 4х 8bits, 4х float. Одна 8bit пишется, остальные читаются.
Другие порты не задействованы.

Из модуля statistic: cycle time in 100mks = 7…10

Николаев Андрей
04.05.2011, 17:22
я бы уменьшил минимальное время цикла до 1-3 мс.
А что значит при попытке записи программы.
То есть когда Вы пытаетесь обновить программу в ПЛК?
Установлена ли перемычка на верхней плате? Попробуйте перед записью новой программы выполнить команду - сброс заводской из меню Онлайн.

amigo
04.05.2011, 17:32
А что значит при попытке записи программы.
То есть когда Вы пытаетесь обновить программу в ПЛК?

Когда меняю программу и подключаюсь к ПЛК, мне предлагается загрузить новую программу. Соглашаюсь. Идёт процесс заливки. Показывается окошко с надписью «Полная загрузка…». Вот процесс дошёл до «config.dat: 3203 из 3203 байт», лёгкое замирание… и ПЛК делает beep и перезагружается. Всё, процесс прерван, «Ошибка связи (#0): произошло отключение».

Перемычка установлена.

Сделал заводской сброс, затем онлайн-загрузка — случилась перезагрузка на том же месте.

Николаев Андрей
05.05.2011, 15:04
Снимите перемычку.

amigo
05.05.2011, 16:09
Снимите перемычку.
Ой, обманул. Не поглядев, перепутал верхнюю плату со средней. На верхней плате перемычка не стоит.

Николаев Андрей
05.05.2011, 21:34
Каюсь - это я Вас обманул... Правда не специально.
У ПЛК110 - на верхней плате.
У ПЛК100, ПЛК150, ПЛК154 - как раз на средней.

Карнаухов Дмитрий
10.05.2011, 11:03
Посмотрел реальное время цикла - то что показал модуль статистики - ~1.5 мс, установил 3 мс.
Посмотрел файлы логов, в принципе все ок. Но, контроллер через некоторое время перестает вести опрос модбас-ТСР и отвечать на запросы ОРС-сервера. В последний раз помогло только отключение на продолжительное время, затем связался через дебаг-порт, обнаружил, что слетел IP адрес, поменялся на 10.0.6.10. Сам? Он так умеет?
На объекте кулхацкеров не замечено.

Поясните так же следующий фрагмент:

2011. 5. 6 4:22:16 # 0 KERNEL LOADED

2011. 5. 6 4:22:17 # 1 PLC STARTED

2011. 5. 7 2:28: 3 # 2 PLC STOPED

2011. 5. 8 7:37:44 # 1 PLC STARTED

2011. 5. 8 11:14:33 # 11 Power down Switch to backup

2011. 5. 8 11:14:36 # 12 Power up

2011. 5. 8 11:14:44 # 2 PLC STOPED

2011. 5. 8 11:14:48 # 1 PLC STARTED


Записи от 8-го числа в 11:14 - это как раз моя первая попытка оживить контроллер. Как в таком случае он сам по себе стартовал и "стоповал" в предыдущие дни? Или это чей-то злой умысел?

Я в растерянности, не могу добиться стабильной работы. Какой объем информации контроллер может без проблем передавать на верхний уровень? У меня порядка семисот тэгов различных типов. Есть ли смысл передавать дискретку через биты слов? При ~550 дискретных сигналах количество тэгов можно сократить до 230 примерно, Но будет ли эффект.

IVM
10.05.2011, 11:55
Сообщите, если не секрет, на чем сделан верхний уровень.

Карнаухов Дмитрий
10.05.2011, 12:20
InduSoft Web Studio v6.1

Николаев Андрей
10.05.2011, 15:25
1. Самопроизвольный останов обсуждается очень активно. Сегодня контроллер с новой прошивкой передали в тестирование.
На данный момент можно обойти, добавив в Конфигурации ПЛК модуль Button.
2. 700 Тэгов - это конечно прилично. И если возможность есть перегнать в слова битовые переменные, это ИМХО хорошо (и время опроса сильно уменьшите).
Однако здесь надо рассматривать:
Работу OPC сервера (я бы CoDeSys OPC уже не использовал, как и ОВЕН OPC)
Работу SCADA системы
Загруженность сети (что еще в сети стоит?). Видел ситуацию, когда контроллерная подсеть интегрировалась в заводскую. И вроде и выход закрыли, а когда лог снифера увидели, сильно огорчились. Сервер с завидной периодичностью слал запросы групповые запросы в сеть...
Самопроизвольно адрес поменяться не должен был - я такого не видел. Пользовательская программа осталась? После изменения IP из CoDeSys контроллер перезагружали?

Карнаухов Дмитрий
10.05.2011, 16:37
Сеть технологическая. В сети контроллер, крейты, операторская станция.

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

После того, как я изменил IP адрес на нужный мне, контроллер был несколько раз перезагружен.

Параллельно был обнаружен другой эффект. Чтобы без "танцев с бубном" переписывать программу, нужно перед записью сохранить программу. Уж и не знаю какая зависимость, но попытка обновить программу просто нажатием кнопочки "соединиться с контроллером" (затем появляется окошко с предупреждением, что онлайн обновление не возможно и т.д.) приводит к перезагрузке, программа не обновляется. Но если перед этим нажать "сохранить" - обновление происходит с ходу.

Какой ОРС хорошо зарекомендовал себя?

Николаев Андрей
10.05.2011, 18:59
Спасибо, интересное наблюдение, с сохранением...
Обязательно проверьте, что у Вас в итоге программа записывается в ПЛК (отключите питание и включите минут через 15).

Какой OPC зарекомендовал предлагаю спросить и форумчан, кто делал большие проекты. Я скорее теоретик :)