On-line: гостей 1. Всего: 1 [подробнее..]
АвторСообщение



ссылка на сообщение  Отправлено: 18.12.16 13:20. Заголовок: Перестают работать модули Simpl+


Сложилась непонятная ситуация: на объекте после заливки контроллера PRO3 всё работает. Через какое-то время все Simpl+ модули вдруг перестают работать. В логах ничего. Намекните, где копать, пожалуйста!

Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 15 [только новые]


постоянный участник




ссылка на сообщение  Отправлено: 18.12.16 13:46. Заголовок: У меня было подобное..


У меня было подобное, из-за какой-то ошибки один из S+ модулей при запуске останавливал AV3 процессор напрочь.
Хорошо, что при пусконаладке...
Ловил исключая модули по одному. Причину так и не нашел, какая то моя ошибка, совместной работы с SIMPL или использования памяти.
Нашел S+ из-за которого все зависало и переписал заново.


Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 18.12.16 18:16. Заголовок: На моей практике в 9..


На моей практике в 99% случаев ошибка была в ошибочной организации бесконечного цикла не притормаживаемого delay и т.п.
Смотрите while циклы.
Код программы
while(k=0)
{
}
готов положить любой процессор на лопатки. Утрирую конечно тупость кода, но суть ясна. Доходило, что спасать ситуацию приходилось только остановкой программы, подключившись по USB/COM.
Было пару случаев при объявлении достаточно большого массива nonvolatile переменных. При этом компилятор не ругается, т.е. физической памяти хватает, но программа встает раком и на изменение переменных в дебагере не реагировала. Но это проявляется сразу, так что смотрите 1 вариант про бесконечные циклы.


Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




ссылка на сообщение  Отправлено: 18.12.16 18:21. Заголовок: Да, бывало и у меня ..


Да, бывало и у меня раньше на 2-й серии несколько лет назад при тренировках с циклами в S+.
Процессор вставал так, что только насильственный физический останов, восстановление через Monitor позволяли вернуться на исходные позиции.



Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 18.12.16 20:20. Заголовок: речь идет о том что ..


Вячеслав, Игорь, речь идет о том что процессор нормально работает, не работают только + модули, а вы описываете тупление всего контроллера. У меня ситуация идентичная описываемой была на 2 серии - закончилось заменой контроллера в сервисе после диагноза - ошибки памяти. Но у 3-ей серии совсем другая архитектура, причины могут быть другие.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




ссылка на сообщение  Отправлено: 18.12.16 20:25. Заголовок: Alexandr, я не выдаю..


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

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 18.12.16 20:40. Заголовок: Да понятно что вы не..


Да понятно что вы не выдаете рецептов :), мы уже к вам привыкли. Контроллер положить есть множество способов, а отрубить обработку Simpl+ через некоторое время работы - это уже экзотика, тут или аппаратная проблема (как у меня на 2 серии была) или нужно копать глубже, разбираясь как организована на 3-ей серии обработка таких модулей, и там уже можно будет смотреть что и как падает. На 2 серии Simpl+модули имели достаточно низкий приоритет, и если контроллер был сильно занят чем в обычной программе, они могли и тупить, но не совсем отваливаться. Хотя может и банальная корявость в одном из модулей тупо вешает их обработчик(что вроде не должно происходить, но кто знает).

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 18.12.16 21:19. Заголовок: Если у автора не раб..


Если у автора не работают исключительно + модули при работоспособности остального кода, вероятно ошибка программирования.
1. И самая из них распространенная опять таки войти в цикл из которого уже не выйти. В данном случае не обязательно с подвешиванием процессора.
С другой стороны не во всех же сразу ошибки. Тогда может и с прошивкой быть баг и аппаратный.
2.Редко достижимая но все же выявленная мной ошибка уязвимость 3 серии = это ограничение на количество одновременных циклов (угадайте каких) - ага, циклов while
Так вот у 3 серии процессоров нельзя организовать одновременное выполнение более 8 циклов while (по крайней мере внутри одного + модуля). т.е. тело 9 по счету цикла выполнятся не будет.
Дальше я копать эту проблему не стал, скажу только что 2 серия вполне справлялась с 10 циклами и может быть справилась бы и с большими, но для выполнения поставленной задачи более 10 мне запускать не нужно было и ограничение 2 серии в этом вопросе остается до конца не исследованным.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 19.12.16 02:55. Заголовок: У S+ в 3-й серии нет..


У S+ в 3-й серии нет определённого "процесса", который общий на все модули. Наоборот - для каждоого S+ модуля есть своя DLL.

Обработчик события S+ может словить необработанное исключение и упасть сам - т.е. недовыполнинться. И если вы сипользовали какие-нибудь семафоры, то busy не прекратится, и конструкция с threadsafe тоже больше не будет выполняться. Обычно это даёт крэш в логе.

Обработчик события S+ c вызовом S# может бОльшее: он может вызвать "системную" функцию .Net, которая словит необработанное исключение. Тогда в перезагрузку уходит контроллер, а если ловятся три такие перезагрузки за 5 минут то вочдог разрегистрирует эту программу - я напоролся на это с недозалитым шлюзом CI-KNX. Это тоже было в логе.

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

Бесконечные циклы в main() во 2-й серии были наименьшим злом - этот код исполняется 1 квант времени ОС, останавливается и ждёт в стеке недовыполненных обработчиков, это делается механизмом многозадачности той OS. Если делать delay() то поверх этого механизма ещё добавляется таймер. А если какой-нибудь processLogic() - то вовсе шухер на переключение в интерпретатор SIMPL.
Сейчас появились wait() и всю ту логику, которую делали в этих циклах стало изящней делать с помощью этих таймеров, а в 3-й серии тупые бесконечные циклы грузят контроллер, Windows Mobile не так спокойно к ним относится, приоритет выше и вообще неясно чем процессор занялся. Вроде бы у вас не тот случай.

Я не думаю, что это может быть из-за ошибок в трансляторе в духе 10-го вложенного while() - вы бы увидели невыполнение сразу.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 19.12.16 04:44. Заголовок: позапускайте из конс..


позапускайте из консоли с разной переодичностью

SPLUSTASKS:n
THREADPOOLINFO:n

n - номер програмы.

посмотрите какие ThreadId для каких модулей S+ запущены.

SPLUSTASKS:2
Module Name | ThreadId | Priority | RunTime(ms) | CodeLine Information
S-5.3 0x084882F2 255 19 238 (Main)
S-5.3 0x080084F2 255 6 195 e_SIGNAL_TYPE_ANALOG -- Input: 2

может найдёте подозрительные которые не должны в отличии от while(1) висеть постоянно;)

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 19.12.16 05:41. Заголовок: Вячеслав пишет: Так..


Вячеслав пишет:

 цитата:
Так вот у 3 серии процессоров нельзя организовать одновременное выполнение более 8 циклов while (по крайней мере внутри одного + модуля). т.е. тело 9 по счету цикла выполнятся не будет.



попробовал... одновременно выполняются и 21. скорее тут вопрос не в количестве тел ...


Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 19.12.16 12:28. Заголовок: Я не стопорил програ..


Я не стопорил программу delay-ями.
Я в каждом цикле инкрементировал счетчик глобальной переменной. (Идея была в косвенной оценке производительности процессора.)

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 19.12.16 19:41. Заголовок: Производительность в..


Производительность высокая даже на MC3, если не использовать Simpl+ модули. Все больше упирается в интерфейсы нежели в процессор. Например если к PRO3 подключить 240 TCP/IP устройств в 1 программе, то он работает, но как только подключаешься через дебаггер или монитор он падает как мертвый... и это он еще не управлял этими устройствами.

Спасибо: 0 
ПрофильЦитата Ответить



ссылка на сообщение  Отправлено: 20.12.16 00:26. Заголовок: Да, в SIMPL есть 253..


Да, в SIMPL есть 253 IP слота, можно сколько хочешь наделать соектов в S+ и если очень прёт - то ещё наоткрывать соединений из S# можно. Но как сетевой стек в базовой OS Windows Mobile 6.5 все эти соединения будет держать?)

Откуда эта склонность к PRO3? Если нужно управлять по IP, возьмите уже на эти деньги 5 штук RMC3 и открывайте 240 сокетов в своё удовольствие.
PRO3 ирогирывает ВЕЗДЕ:
- хотите поставить самый дорогой контроллер? Ставьте уже DMPS3-300-C-AEC, чего стесняться-то)
- хотите жуткое количество портов? Ставьте этих глючных уродцев CEN-CI3-3, может их отладят как будете запускаться.
- хотите чтобы не тормозило? Ставьте CP3 сколько хватит воображения.

Если в проекте от 7-ми комнат неотвратительный монтаж, неидиотская схема коммутации и подбор оборудования не из складских остатков, то после жуткой криворукости программера самая частая причина недовольства клиента - страшные тормоза - оказывается в упорном желании программиста запустить всё это строго на одном контроллере, да ещё и на каком-нибудь AESI до кучи.

Спасибо: 0 
ПрофильЦитата Ответить
постоянный участник




ссылка на сообщение  Отправлено: 20.12.16 16:13. Заголовок: Не понимаю, чем поле..


Не понимаю, чем полезным можно так загрузить процессор, что он перестанет отвечать на запросы?

Спасибо: 0 
ПрофильЦитата Ответить





ссылка на сообщение  Отправлено: 20.12.16 23:31. Заголовок: У нас хорошенько при..


У нас хорошенько притормаживало процессор подключение по COM видеомикшера DATAVIDEO. Он постоянно спамит запросами статусов всего чего попало и эти запросы транслировали в порт управления камерами. Когда в дебагере по 250 событий в секунду, процессор начинает туговато реагировать.
Вот к CEN-CI3-3 нареканий не было. Это ведь просто модуль расширения портов по IP. Что там глючит?
C DMPS напротив были какие то проблемы. Только может это еще не 3 серия была.
Про PRO3 и правда, часто не загружен даже картами или карты не используются- т.е. чистой воды продать.
Вот к PRO2 какие то теплые чувства все таки. Как же все быстро компилируется и заливается, не то что на 3 серии.

Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 74
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет