PDA

Просмотр полной версии : Достигнуто максимальное число переменных



CEkip
24.05.2011, 18:04
По ходу написания программы появилась снизу надпись: Достигнуто максимальное число переменных(ПЗУ:2%, ОЗУ: 0%).
Как с этим бороться? Ведь написано только треть программы. И сколько переменных может быть?
:confused:

rovki
24.05.2011, 20:35
По ходу написания программы появилась снизу надпись: Достигнуто максимальное число переменных(ПЗУ:2%, ОЗУ: 0%).
Как с этим бороться? Ведь написано только треть программы. И сколько переменных может быть?
:confused:
Что бы реально Вам помочь выкладывайте проект.:rolleyes:

CEkip
25.05.2011, 02:35
Вопрос к разработчикам: почему бы не предусмотреть возможность использование макроса в макросе??? По-моему это необходимо.
:confused:

Что бы реально Вам помочь выкладывайте проект.

rovki
25.05.2011, 06:48
Вопрос к разработчикам: почему бы не предусмотреть возможность использование макроса в макросе??? По-моему это необходимо.
:confused:
Это уже неоднократно предлагалось ;)
В вашем случае уменьшить использование переменных можно с помощью линий связей :rolleyes: А для упрощения читаемости схемы больше используйте макросов ,у вас много повторяемых фрагментов (одинаковых).

Евгений Сергеевич
25.05.2011, 11:51
в каждой точке ветвления создается внутренняя переменная для просчета цепочки. Она (переменная) живет пока ведется расчет. Поэтому когда у вас много ветвлений и/или обратных связей в одной цепи (от входов до конкретного выхода) программа создает много внутренних временных переменных. В вашем случае их получилось слишком много. Единственный способ "лечения" на данный момент это упрощение схемы.

rovki
25.05.2011, 12:48
в каждой точке ветвления создается внутренняя переменная для просчета цепочки. Она (переменная) живет пока ведется расчет. Поэтому когда у вас много ветвлений и/или обратных связей в одной цепи (от входов до конкретного выхода) программа создает много внутренних временных переменных. В вашем случае их получилось слишком много. Единственный способ "лечения" на данный момент это упрощение схемы.
Так вопрос и был как это сделать "упрощение" ,если проект реализован на 30%.Я попробовал убрать одну переменную (блок входной\выходной) и заменить на линии связи и предупреждение ушло,поэтому и посоветовал убрать эти блоки переменных и заменить на "провода" .:cool:

CEkip
25.05.2011, 15:30
Упростил все. Получилось, но не так как хотелось бы. Теперь написание программы сводиться не к тому как тебе нужно, а к тому как нужно ей (ПР).
Были планы на использования ПР. Попробовал на простеньком проекте :eek: . Думаю, что в проектах по-больше использовать старый и проверенный LOGO!
Такие первые впечатления от ПР110.:confused:
Есть ли у кого опыт эксплуатации ПР. Интересно как работает (надежно или с глюками)?:confused:

rovki
25.05.2011, 17:15
Упростил все. Получилось, но не так как хотелось бы. Теперь написание программы сводиться не к тому как тебе нужно, а к тому как нужно ей (ПР).
Были планы на использования ПР. Попробовал на простеньком проекте :eek: . Думаю, что в проектах по-больше использовать старый и проверенный LOGO!
Такие первые впечатления от ПР110.:confused:
Есть ли у кого опыт эксплуатации ПР. Интересно как работает (надежно или с глюками)?:confused:

А что упростили ?Алгоритм (задачу) или другой подход к схемотехнике .?Привычка -вторая натура ,может дело в ней ,а не в ПР.:) .Для электронщика(цифровика) по специальности очень хорошая штука ,особенно овен лоджик.Делал проекты (смотри примеры) ,без макросов ,свыше ста элементов и ФБ без симулятора в проекте,а теперь вообще нет проблем (кроме стека) удовлетворить свои потребности.Использовал ПР с первого дня выпуска -еще работают ,были проблемы с ПР на 220в(может не повезло) ,другой статистики не имею.

AI!
25.05.2011, 18:00
CEkip, у Вас слишком много циклических связей
(to rovki - то что они изображены в виде переменных, это не делает автоматом их таковыми внутри ПР)

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

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

rovki
25.05.2011, 18:34
CEkip,
(to rovki - то что они изображены в виде переменных, это не делает автоматом их таковыми внутри ПР)



Может так ,а может и не так .Только когда я убрал (в макросе)одну переменную и вместо ее нарисовал провода ,ограничение ушло ,хотя схема(количество обратных связей осталось то же).Не поленился и убрал все переменные (блоки) внутри макроса и при удвоении количества макросов в проекте ограничение не наступает.Значит переменные не надо ставить в макросы ,а в проект без разницы???

Евстигнеев Максим
25.05.2011, 18:43
И количество обратных связей, и количество блоков переменных используют внутренние переменные.
Попробуем в следующей версии реализовать пункт "Статистика", где будет отображаться расходование всех ресурсов: переменных, ОЗУ,ПЗУ, стек, количество экземпляров ФБ.

AI!
25.05.2011, 18:58
и количество блоков переменных используют внутренние переменные.ух ты...
а я из описания понял, что это просто для удобства, когда "неохота" вести связь через весь проект...
(в смысле когда переменная используется только один раз)

CEkip
25.05.2011, 19:40
Залил проект в ПР. Все работает. Посмотрим, что будет на объекте. Пока все замечательно.:)

А что упростили ?Алгоритм (задачу) или другой подход к схемотехнике .
Упростил алгоритм, а по-поводу схемотехники надо подумать.
Спасибо за помощь.

rovki
25.05.2011, 19:51
Залил проект в ПР. Все работает. Посмотрим, что будет на объекте. Пока все замечательно.:)
Жаль,что для остальных пользователей не раскрыли ,каким образом (конкретно) вышли из ситуации.

Евстигнеев Максим
25.05.2011, 19:54
Залил проект в ПР. Все работает. Посмотрим, что будет на объекте. Пока все замечательно.:)


Ждем Ваших результатов, нам важно Ваше мнение.

CEkip
25.05.2011, 20:13
Жаль,что для остальных пользователей не раскрыли ,каким образом (конкретно) вышли из ситуации.
Прикладываю программу, а Руководство на шкаф в разделе "наши проекты". Только не хаять по-поводу стиля написания программы.
http://www.kip.citybiysk.ru/index.php?option=com_content&view=article&id=7&Itemid=36

rovki
25.05.2011, 20:51
То есть уменьшили количество блоков переменных?

wal79
25.05.2011, 21:44
И количество обратных связей, и количество блоков переменных используют внутренние переменные.
Попробуем в следующей версии реализовать пункт "Статистика", где будет отображаться расходование всех ресурсов: переменных, ОЗУ,ПЗУ, стек, количество экземпляров ФБ.

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

Евгений Сергеевич
30.05.2011, 15:51
таким образом если вы создадите 128 своих переменных это вызовет ту же ошибку.

AI!
30.05.2011, 16:44
ПЖЛСТ, объясните мне глубокий смысл "своих" переменных...

а то я раньше думал, что это просто аналог обычных "связей", т.е. переменная имеет только "визуальный" смысл...
(только ради удобства чтения/составления схем)

Евгений Сергеевич
30.05.2011, 16:55
что я подразумевал под своей переменной

Евгений Сергеевич
30.05.2011, 17:05
и потом вы же можете создать много и тогда у вас ветвление в чистом виде. В общем программа сразу резервирует под нее место. Задумывалось, да, для удобства, но как там внутри конкретно устроено я вам сейчас объяснить не смогу.

AI!
30.05.2011, 17:22
ну да... про эту переменную я и говорю
ведь если задуматься - то переменная ничем не отличается от связи
(их ведь тож может быть много)

PS возможно реализация связей нескольких выходов с одним входом тож реализуется через внутреннюю переменную?
тогда текущая реализация с явными переменными оправдана, иначе стоит всё же сделать как "обычную связь"...

wal79
31.05.2011, 13:07
ну да... про эту переменную я и говорю
ведь если задуматься - то переменная ничем не отличается от связи
(их ведь тож может быть много)

PS возможно реализация связей нескольких выходов с одним входом тож реализуется через внутреннюю переменную?
тогда текущая реализация с явными переменными оправдана, иначе стоит всё же сделать как "обычную связь"...

На данный момент я с Вами соглашусь - смысла выделять отдельную переменную здесь нет. В принципе пользовательская переменная выполняет роль обычной связи. При зарождении проекта было высказано желание на будущее типа выделять внутреннюю переменную при создании пользовательской. На тот момент это было сделано также с учетом того, чтобы в будущем можно было создавать энергонезависимые переменные. Вообщем задумок и мыслей тогда было много... :) Думаю, что по просьбам пользователей, внутренняя переменная будет убрана оттуда.