Просмотр полной версии : Глобальные переменные
Определяю переменную var1 как глобальную. Далее в функциональном блоке определяю переменную с таким же именем var1. В этом блоке по имени var1 я обращаюсь к переменной var1 функцирнального блока, а как мне обратиться к глобальной переменной var1 в этом блоке?
Назаров Александр
01.04.2009, 16:35
PRG_PLK.var1
PRG_PLK.var1 можно обратиться, если есть POU с именем PRG_PLK. А на
обращение к переменной PRG_PLK.var1 выдаются 2 ошибки 4001 и 4250, так как у меня нет POU с именем PRG_PLK.
Назаров Александр
01.04.2009, 18:29
Но какая то PRG есть? Попробуйте от нее. Хотя наврятли. Надо называть по разному.
Есть несколько PRG. Мне хотелось бы определить одинаковые имена переменных в нескольких PRG и в глобальных переменных. Так мне удобнее. Но внутри PRG я могу обращатся к любой переменной (PRG_1.var1, PRG_2.var1, PRG_3.var1 и т. д.), а к глобальной переменной var1 неужели нельзя обратиться? Какая же она тогда глобальная!!! Тогда придется в глобальных переменных присваивать другие имена.
Логвиненко Андрей
01.04.2009, 18:57
Смотрим руководство CoDeSys:
Внимание: Глобальная и локальная переменные могут иметь одинаковое имя. В POU, где объявлена такая ло-
кальная переменная, она оказывается «сильнее» одноименной глобальной. Использовать одноимен-
ные глобальные переменные нельзя (например, объявленные в конфигурации контроллера и в списке
глобальных переменных).
Получается, что к однойменной переменной из другого POU обратится можно, а к глобольной нельзя. Остается универсальный способ на все случаи жизни - через указатель, но лучше одинаковые имена не использовать.
Спасибо, но я эту фразу из руководства понимал так, что нельзя использовать одинаковые имена переменных внутри глобальных переменных и в конфигурации контроллера, т. е. имя var1 нельзя присвоить еще одной глобальной переменной и входу-выходу контроллера. Ну ладно, придется использовать другие имена. Еще раз спасибо.
Игорь Петров
02.04.2009, 09:04
Можно сделать структуру с нужным набором переменных и объявить ее глобально. Получиться аналог глобального блока данных. Можно и массив таких структур сделать.
Powered by vBulletin® Version 4.2.3 Copyright © 2026 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot