[?]: Уничтожаются ли TEMP-переменные после вызова FB?

Промышленные Логические Контроллеры SIMATIC S7-200/300/400
gorodock
Posts: 1
Joined: Thu Dec 20, 2007 4:52 am
Location: Russia

[?]: Уничтожаются ли TEMP-переменные после вызова FB?

Post by gorodock »

Уважаемые коллеги, помогите найти ответ на вопрос:
речь идет об S7-400
Написал два блока FB, при вызове их из OB1 возникает эффект, будто области локальных временных переменных у них пересекаются.
Значение переменной из области TEMP одного блока, попадает в другую переменную другого блока. Разве после вызова FB temp-переменные не уничтожаются?
CoMod
Site Admin
Posts: 3992
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

Post by CoMod »

Уничтожаются вместе с контроллером...
Нельзя использовать неинициализированные переменные нигде, так как их состояние заведомо является случайным - это относится ко всему программированию.
Сначала задай ей значение, а затем работай с ней.
komatic
Posts: 79
Joined: Thu Mar 15, 2007 12:59 pm
Location: Ukraine

Post by komatic »

100 пудово уничтожаются

хотя при некоторых условиях могут сохранятся, например больше никто этот стек не использует.

это можно использовать для получения большой головной боли в будущем... :D
CoMod
Site Admin
Posts: 3992
Joined: Thu Feb 16, 2006 3:25 pm
Location: Russia

Post by CoMod »

komatic wrote:100 пудово уничтожаются
Что ты понимаешь под "уничтожением" ?
Заполнение использовавшейся памяти в 00 или FF ?
Обычно ничего не перетирается нулями, так как это лишняя трата времени и ресурсов.
Поэтому в памяти остаётся мусор битов от предыдущих временных переменных.
komatic
Posts: 79
Joined: Thu Mar 15, 2007 12:59 pm
Location: Ukraine

Post by komatic »

Под уничтожаются я имел в виду - становятся непригодными к использованию в следующем цикле.
конечно специального затирания со стороны OS не происходит... :D