PDA

Просмотр полной версии : самопроизвольный сброс всех параметров



dima-profi
08.02.2010, 15:49
на плк100 время-от времени происходит сброс видимо программы и всех Retain - переменных. с чем это может быть связано?
как настраиваются тайм-ауты, и как посмотреть время выполнения цикла?
и при сбросе через кнопку на ПЛК? и при самостоятельном сбросе не запускается POU, отмеченный в конфигурации задач как after_reset
есть-ли вообще документация по настройке системных событий в ПЛК100?
что означают входные параметры
dwEvent, dwFilter и dwOwner?
какое значение должна возвращать функция-обработчик системного события?

вот проект1831
вот конфиги и логи
1832

что означают такие строчки в debug.txt
17 E PLC was reset by watchdog!
3 M Last run module Id =450
3 M Last post module Id =101
как мне определить по номеру в каком POU произошло зависание?

17 E PLC was reset by watchdog!
3 M Last run module Id =100
3 M Last post module Id =101
что за POU номер 100?

что значит сообщение codesys-а "одна или более библиотек изменились со времени предыдущей загрузки проекта?
я ставил на 2 компьютера один и тот же дистрибутив Codesys 2.3.9.9
нужно ли заменять после установки этой версии ее библиотечки на те, что лежат в папке Библиотеки CoDeSys\ на диске ПЛК100 версии 8.12?
может ли это повлечь глюки?

Николаев Андрей
09.02.2010, 12:19
1. Записана ли у Вас программа во Flash (делали ли Вы команду Создание загрузочного проекта\Creat Boot Project)?
2. Номера ID в Debug.txt не как не коррелируют с POU в CoDeSys - Debug.txt - файл для нашего программиста.
3. У Вас происходит перезагрузка по WatchDog. То есть где то в программе происходит зависание. Разбирайтесь с программой от маленького к большому. По работе с Ewents - мануал по CoDeSys.
4/ Обновите библиотеки, раз он так просит - ничего плохого не будет. Хотя конечно хорошо бы глянуть на какие именно библиотеки он ругается (должны быть красными в Library Manager).
5. Посмотреть цикл контроллера и свободное время можно добавив модуль статистика в конфигурации ПЛК. Описание модуля в РП PLC Configuration есть.

dima-profi
09.02.2010, 12:24
вот обновленный проект и логи
1835
1834

есть ли разница между Watchdog reset и сброс по нажатию кнопки сброс?
после нажатия кнопки не происходит запуск программы, настроенной в системном событии after_reset, соответственно не загружаются парамерты

1. программа Записана на Flash
кстати, что будет если произойдет сброс, а файла retain.bin еще нет? (не было пропадания питания) откуда возьмутся Retain переменные?

2. Номера ID в Debug.txt не как не коррелируют с POU в CoDeSys - Debug.txt -
- методом тыка выяснил, что комбинация
3 M Last run module Id =100
3 M Last post module Id =101
в файле debug.txt означает сброс кнопкой.
кстати, размер файла ограничен? он не может вырасти так что файловая система начнет буксовать?

4. Обновите библиотеки, раз он так просит - ничего плохого не будет. Хотя конечно хорошо бы глянуть на какие именно библиотеки он ругается (должны быть красными в Library Manager).
-- красных библиотек нет, и сообщение возникает только при первом открытии

5. Посмотреть цикл контроллера и свободное время можно добавив модуль статистика в конфигурации ПЛК. Описание модуля в РП PLC Configuration есть.
CycleTime in 100 mks скачет от 5 до 8
Free processor Resources in 1 cycle = 29552 - что это значит?

MinCycleLength = 30ms
MaxCycleLength=1000ms

dima-profi
09.02.2010, 13:46
в результате сегодняшней отладки я выяснил, что использование Retain persistent переменных в моем случае бесполезно - они не восстанавливаются при сбросе, сделал сохранение и чтение части переменных из файла, а как раз проверку на необходимость загрузки из файла - путем проверки на 0 retain переменной, у которая используется в программе как константа и у нее никогда не бывает нуля в значении

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

Филоненко Владислав
09.02.2010, 14:45
MinCycleLength = 30ms - это очень много.
Free processor Resources in 1 cycle = 29552 - что это значит? - это значит, что 29552 из 30000 мс в цикле процессор ничего ни делал. Т.е. у Вас цикл ПЛК завышен раз в 30.

Какой у Вас ПЛК? прошивка?

dima-profi
09.02.2010, 17:58
ПЛК100K-M прошивка 2.10.9.
Когда я ставил MinCycleLength = 50ms, то Free processor Resources in 1 cycle выдавал вообще отрицательные значения, может переполнение?

может мне поставить MinCycleLength=0?
в PLC-PRG все равно абсолютно все операции висят на двух таймерах, причем обработка команд с панели (которые поступают очень-очень редко) висит на таймере с периодом 200 миллисек, все остальные на таймере - 1 сек.

где описаны параметры обработчика системных событий?
в файле CoDeSys_V23_RU.pdf в пункте "6.7.3 Системные события" дано лишь очень краткое описание, ничего конкретного.
какие из системных событий поддерживаются ПЛК100?

ответьте, пожалуйста и на другие вышеозначенные вопросы...

Филоненко Владислав
09.02.2010, 19:41
MinCycleLength=1 или =2 - Ваш вариант.
Системные события" дано лишь очень краткое описание, ничего конкретного.
какие из системных событий поддерживаются ПЛК100? - поставьте таргет 2.10 и там будут ве поддерживаемые события. Которых не будет - не поддерживаются.

dima-profi
13.02.2010, 09:48
подскажите, могут-ли происходить подвисания при адресации элементов массива таким образом:

VAR sel:POINT TO graf_elem;
...
sel:=ADR(chconf[ch].graf[gr]); где graf - массив из graf_elem

sel^.wd:=set_wd;

Филоненко Владислав
14.02.2010, 11:59
если вышли за границы массива или обращаетесь к невыровненному элементу - может. проверяйте указатель на Null и на принадлежность массиву.