Подскажите, что можно сделать. После конфигурирования области ввода/вывода контроллер начал перезагружаться. Раз в сутки, примерно. Иногда теряется связь между SCADA и контроллером. Рабочая версии программы в приложенном файле.
Вид для печати
Подскажите, что можно сделать. После конфигурирования области ввода/вывода контроллер начал перезагружаться. Раз в сутки, примерно. Иногда теряется связь между SCADA и контроллером. Рабочая версии программы в приложенном файле.
Ох ничего себе у Вас программка...
Да и опрос по сети весомый.
Если не секрет - чего столько опрашиваете, особенно в первом подмодуле ModBus TCP.
Да и по протоколу ОВЕН два десятка переменных...
При достаточно весомой программе (одних ПИДов по моему пяток) у Вас цикл ПЛК - 1мс.
Скорее всего контроллер просто не справляется.
Добавьте модуль статистика и гляньте что происходит с циклом. Скорее всего его необходимо увеличивать. При этом обязательно контролируйте обмен по сети.
Вообще такой объем обмена я бы в PLC Configuration не делал. Реализовал бы в программе мастера. ОВЕН мастер уже вообще реализован - надо просто библиотеку использовать.
Для очистки совести - считайте с ПЛК файлы log.txt и debug.txt и пришлите на plc@owen.ru с программой и комментариями
Опрос идет I-8KE8-MTCP-G в нем 8 модулей аналогового ввода I-87017 (или аналог). В принципе все работает, но иногда связь теряется.
Цикл задачи контроллера (сейчас посмотрел) 100 мс, можно увеличить, это не критично, регуляторы пока что на втором плане.
Я плохо понимаю какие есть тонкости в конфигурировании области ввода\вывода. Все эти ньюансы не понятны, лучше ткните носом, пожалуйста. Читать умею.
Когда доберусь до объекта - будут логи.
Гы, а чем занимается I-8KE8-MTCP-G??? :)
1. У Вас время, необходимое контроллеру, если Вы все правильно посмотрели - 100 мс (хотя скорее всего 100 раз по 100 мкс), то есть 10 мс. Уж слишком много 100мс...
А в Вашем проекте контроллеру на цикл отводится 1 мс (параметр MinCycleLen в настройках самого ПЛК - самый корень конфигурации).
Так же посмотрите оставшееся свободное время в том же модуле статистика.
Этого вполне достаточно для перезагрузки и не выполнения каких то задач (например обмена) - тупо не успевает в отведенное время.
В Конфигурации ПЛК все так. Это подтверждает то, что у Вас все работает.
Однако когда опрос достаточно большой (много параметров) я бы рекомендовал в принципе отказаться от использования PLC Configuration для настройки обмена, и весь обмен реализовывал программно, с помозью библиотек.
Вот такие общие рекомендации.
З.Ы.: Еще рекомендую почитать и посмотреть пример с многозадачностью, когда задачи по приоритетом можно вызывать в разные промежутки времени... Это не панацея, да и проект придется перепиливать. Так что скорее на перспективу.
I-8KE8-MTCP-G это корзинка в которой восемь восьмиканальных аналоговых модулей ввода 4-20 мА. Не все используются, т.е. если это поможет - можно сократить опрос путем исключения ряда переменных модбас.
Спасибо за ответы, будем пробовать.
Еще один момент. При попытке переписать программу контроллера полностью, не "онлайн", он уходит в перезагрузку. Для перепрошивки программы требуется выполнить заводской сброс, затем соединиться с ним, попробовать переписать программу - он перезапустится - и только тогда получается записать новую. Этот набор действий найден экспериментально.
Обновите прошивку контроллера
Аналогичные вопросы.
Программа?
Время цикла?
Сетевой обмен?
Задействованные порты?
Программа в одну строку: присваивание модбас переменной значения переменной аналогового входа.
Минимальное время цикла - 50мс.
Сетевой обмен: modbus-slave по 485-ому порту, 4х 8bits, 4х float. Одна 8bit пишется, остальные читаются.
Другие порты не задействованы.
Из модуля statistic: cycle time in 100mks = 7…10
я бы уменьшил минимальное время цикла до 1-3 мс.
А что значит при попытке записи программы.
То есть когда Вы пытаетесь обновить программу в ПЛК?
Установлена ли перемычка на верхней плате? Попробуйте перед записью новой программы выполнить команду - сброс заводской из меню Онлайн.
Когда меняю программу и подключаюсь к ПЛК, мне предлагается загрузить новую программу. Соглашаюсь. Идёт процесс заливки. Показывается окошко с надписью «Полная загрузка…». Вот процесс дошёл до «config.dat: 3203 из 3203 байт», лёгкое замирание… и ПЛК делает beep и перезагружается. Всё, процесс прерван, «Ошибка связи (#0): произошло отключение».
Перемычка установлена.
Сделал заводской сброс, затем онлайн-загрузка — случилась перезагрузка на том же месте.
Снимите перемычку.
Каюсь - это я Вас обманул... Правда не специально.
У ПЛК110 - на верхней плате.
У ПЛК100, ПЛК150, ПЛК154 - как раз на средней.
Посмотрел реальное время цикла - то что показал модуль статистики - ~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 примерно, Но будет ли эффект.
Сообщите, если не секрет, на чем сделан верхний уровень.
InduSoft Web Studio v6.1
1. Самопроизвольный останов обсуждается очень активно. Сегодня контроллер с новой прошивкой передали в тестирование.
На данный момент можно обойти, добавив в Конфигурации ПЛК модуль Button.
2. 700 Тэгов - это конечно прилично. И если возможность есть перегнать в слова битовые переменные, это ИМХО хорошо (и время опроса сильно уменьшите).
Однако здесь надо рассматривать:
Работу OPC сервера (я бы CoDeSys OPC уже не использовал, как и ОВЕН OPC)
Работу SCADA системы
Загруженность сети (что еще в сети стоит?). Видел ситуацию, когда контроллерная подсеть интегрировалась в заводскую. И вроде и выход закрыли, а когда лог снифера увидели, сильно огорчились. Сервер с завидной периодичностью слал запросы групповые запросы в сеть...
Самопроизвольно адрес поменяться не должен был - я такого не видел. Пользовательская программа осталась? После изменения IP из CoDeSys контроллер перезагружали?
Сеть технологическая. В сети контроллер, крейты, операторская станция.
При попытке подключиться контроллер предложил обновить программу. Правда лог предыдущих событий был потерян, т.е. в моем сообщении выше самое начало лога.
После того, как я изменил IP адрес на нужный мне, контроллер был несколько раз перезагружен.
Параллельно был обнаружен другой эффект. Чтобы без "танцев с бубном" переписывать программу, нужно перед записью сохранить программу. Уж и не знаю какая зависимость, но попытка обновить программу просто нажатием кнопочки "соединиться с контроллером" (затем появляется окошко с предупреждением, что онлайн обновление не возможно и т.д.) приводит к перезагрузке, программа не обновляется. Но если перед этим нажать "сохранить" - обновление происходит с ходу.
Какой ОРС хорошо зарекомендовал себя?
Спасибо, интересное наблюдение, с сохранением...
Обязательно проверьте, что у Вас в итоге программа записывается в ПЛК (отключите питание и включите минут через 15).
Какой OPC зарекомендовал предлагаю спросить и форумчан, кто делал большие проекты. Я скорее теоретик :)