PDA

Просмотр полной версии : Как скрыть внутренние переменные ФБ



RV9WFJ
02.08.2014, 15:58
Есть ФБ у которого несколько переменных VAR_INPUT и VAR_OUTPUT и еще три десятка переменных просто VAR.
Так вот в Online режиме если в списке объявлений найти экземпляр этого ФБ и раскрыть его переменные, то вылезает вся портянка из 4х десятков переменных. Можно ли как-то хитро объявить эти VAR переменные, чтоб их вообще не было видно из вне.
Вообще вопрос появился в связи с тем, что если контроллер подключен к CoDeSys через GPRS и открыть POU с огромным списком переменных то порой старый СПК207 после такого начинает жить своей жизнью и даже PINGоваться перестает. К тому же эффекту приводит открытие визуализации в CoDeSys. На новых СПК вроде получше с этим.

capzap
02.08.2014, 16:34
структуры и указатели рулят

RV9WFJ
02.08.2014, 20:45
Это оно конечно да, только внутренних переменных промежуточных они не отменяют

capzap
02.08.2014, 21:54
я этого не понимаю, покажите пример что именно не нравится, я сниму видео как бы я поступил

lara197a
02.08.2014, 22:39
дык просто закройте окно с переменными.
надуманная проблема 100%
это если для просмотра.
а если еще для чего-то др., то не понимаю.

capzap
02.08.2014, 22:43
состряпал проект и со структурой и с указателем

Валенок
02.08.2014, 23:47
Совсем хэлп не смотрим. В кдс2 были {library private}, в 3 {attribute 'hide'}. Курим директивы компилятора и рядом.

RV9WFJ
03.08.2014, 09:34
состряпал проект и со структурой и с указателем
Да как работать со структурой и указателями я и сам хорошо знаю, но иногда хочется видеть промежуточные результаты действий с данными и тут нужны промежуточные переменные. Но видеть их вне ФБ желания нет. Отсюда и проблема.

RV9WFJ
03.08.2014, 09:35
Совсем хэлп не смотрим. В кдс2 были {library private}, в 3 {attribute 'hide'}. Курим директивы компилятора и рядом.Спасибо, именно этого и не хватало.

capzap
03.08.2014, 11:25
хм, я ж просил показать наглядно что не нравится, тогда возможно и пошел бы в нужном направлении. И кстати мое мнение промежуточные переменные должны лежать в VAR_TEMP, а не в просто VAR

RV9WFJ
03.08.2014, 12:46
И тут согласен, но есть еще счетчики и флаги состояний.

Валенок
03.08.2014, 12:56
мое мнение промежуточные переменные должны лежать в VAR_TEMP, а не в просто VAR

Тута какое-то недопонимание (имхо). VAR_TEMP - это определение времени жизни переменной (в прог и фб) в течении 1-ого вызова. Тоже что и VAR, VAR_INPUT в функции. (для функций VAR_TEMP ессно масло маслянное)

//плагиат после #11
Есть промежуточные переменные которые нафик не нужны для просмотра, но должны жить между циклами. Вот накой пялиться на .StartTime в таймерах ?

RV9WFJ
03.08.2014, 16:21
Так мы пр ФБ а не функцию

Валенок
03.08.2014, 19:52
Так и говорю ж - VAR_TEMP в ФБ, по поведению тоже самое что VAR в функции

amn
04.09.2014, 13:38
Хочу уточнить один момент. Промежуточные локальные переменные ФБ, описанные как var доступны вне блока для чтения через точку. Тогда с таким же успехом можно их использовать вместо var_output?