Страница 1 из 1

Добавлено: 19 окт 2006, 11:38
Tankist
Здравствуйте.

Хранится массив в 96 элементов типа Float в глобальной переменной. Этот массив хранится в ОЗУ и имеет определенные значения. В процессе работы контроллера они могут меняться.
Всего в контроллер загружено 4 проекта. Доступ к этому массиву осуществляется только из первого проекта.
При старте контроллера, всё хорошо, все переменные в массиве лежат как надо и соответствуют заданным в Разработчике значениям. Дальше я произвожу Рестарт Деконта и при запуске, в конце массива (от 10 до 40 элементов) значения элементов становятся неверными, а точнее вообще нереальными числами типа 10 в 38 степени. При следующем рестарте Деконта ситуация не изменяется или становится еще хуже.
Вопрос: в чем проблема? Думаю, что в область хранения этого массива записываются какие-то другие данные. Как исправить это явление?

Добавлено: 23 окт 2006, 12:32
Tankist
Здравствуйте снова. У меня еще вопрос про Регистратор и переменные. Почему при создании локальной переменной, нельзя указать чтоб эта переменная была сохраняемой в ОЗУ? Причем иногда программа позволяет сделать локальную переменную сохраняемой, а иногда не позволяет. От чего это зависит?

Добавлено: 23 окт 2006, 13:17
Тех. поддержка
Tankist писал(а):Здравствуйте снова. У меня еще вопрос про Регистратор и переменные. Почему при создании локальной переменной, нельзя указать чтоб эта переменная была сохраняемой в ОЗУ? Причем иногда программа позволяет сделать локальную переменную сохраняемой, а иногда не позволяет. От чего это зависит?


Если переменная является "входной" для блока, то ее нельзя делать "сохраняемой".

Добавлено: 24 окт 2006, 12:43
Tankist
Евгений Рублев писал(а):Если переменная является "входной" для блока, то ее нельзя делать "сохраняемой".

Она не входная, она локальная. И притом выбор "сохраняемая в ОЗУ" не закоментирован и выбрать его нельзя.
А что на счет проблемы с глобальными переменными?

Добавлено: 24 окт 2006, 14:48
Тех. поддержка
Tankist писал(а):
Евгений Рублев писал(а):Если переменная является "входной" для блока, то ее нельзя делать "сохраняемой".

Она не входная, она локальная. И притом выбор "сохраняемая в ОЗУ" не закоментирован и выбрать его нельзя.


А какая версия Разработчика у Вас стоит? В одной из тестовых такое было, но уже давно исправлено.

Tankist писал(а):А что на счет проблемы с глобальными переменными?


В свойствах проекта Разработчика есть галочка "Контроль границ массива", она стоит? Если нет, поставьте, пересоберите проект и попробуйте еще раз.