PDA

Просмотр полной версии : ПЛК100: Не инициализируются глобальные переменные



S#716_0P
07.05.2019, 08:37
Создаю объект для глобальных переменных (нужен для хранения значений уставок). Записываю туда переменные с начальными значениями следующим образом:

CentralHeat_SpPMax AT %QD11.33.0 : REAL := 7.5;
CentralHeat_SpPMin AT %QD11.34.0 : REAL := 0.5;
и т.д.

Но в ПЛК при запуске переменные инициализируются нулями. Сброс, перезагрузка и пр не помогает.
Как образом глобальным переменным можно присвоить начальные значения?

S#716_0P
07.05.2019, 09:56
Спасибо. Так и сделал.

Sulfur
07.05.2019, 11:03
Я делаю по другому.


ПЛЦ_ПРГ
IF Переменная_1=0 AND Переменная_2=0 ... AND Переменная_n=0 (*либо еще какой признак неверных значений*)
THEN ПрогаммаИнициализации
END_IF;
----------
ПрогаммаИнициализации
Переменная_1:=Значение_1;
Переменная_2:=Значение_2;
.
.
.
Переменная_n:=Значение_n;


Переменная_1...Переменная_n обычно храню в глобальном ретайне, либо в регистрах Модбас.
42585

Валенок
08.05.2019, 17:24
храню в глобальном ретайне,
Чем-то отличается от локального ? ))


либо в регистрах Модбас
AT %QD11.33.0 - а это чо ?

Филоненко Владислав
08.05.2019, 21:04
Создаю объект для глобальных переменных (нужен для хранения значений уставок). Записываю туда переменные с начальными значениями следующим образом:

CentralHeat_SpPMax AT %QD11.33.0 : REAL := 7.5;
CentralHeat_SpPMin AT %QD11.34.0 : REAL := 0.5;
и т.д.

Но в ПЛК при запуске переменные инициализируются нулями. Сброс, перезагрузка и пр не помогает.
Как образом глобальным переменным можно присвоить начальные значения?


CentralHeat_SpPMax AT %QD11.33.0 : REAL := 7.5;
CentralHeat_SpPMin AT %QD11.34.0 : REAL := 0.5;

ЭТО НЕ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ, поэтому они и не инициализируются. И использовать %Q а не имя переменной дурной тон и потенциальные ошибки, т.к. компилятор не проверяет, есть ли по этому адресу переменная. И какая.

Валенок
08.05.2019, 22:31
ЭТО НЕ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ, поэтому они и не инициализируются..
Если бы это сказал какой-нить забредший сюда пианэр - то и ладно. Что с него взять. А вот от представителя овена - чушь несусветная.


ЭТО НЕ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ
А пофиг - ГЛОБАЛЬНЫЕ они или локальные
И к тому же они таки ГЛОБАЛЬНЫЕ.


поэтому они и не инициализируются.
Инициализируются. Свое оборудование хоть в руки берем ? Конечно через анус (это к немчикам - оне сегодня/завтра в трауре) - но инициализируюцца. Безо всякого кода.


И использовать %Q .... компилятор не проверяет, есть ли по этому адресу переменная. И какая.
А ему это и не нужно. Адрес - есть ? Коли сразу не ругаецца - есть. А какая и сколько переменных там пасутся - пофиг.


И использовать %Q ... дурной тон и потенциальные ошибки
Здесь согласен. Значит надежда есть )))


PS
И да. Губы тут не причем

Филоненко Владислав
12.05.2019, 17:35
Валенок, Вы опять с апломбом рассуждаете о том, чего не понимаете?

Валенок
13.05.2019, 18:59
Валенок, Вы опять с апломбом рассуждаете о том, чего не понимаете?По пунктам, будьте любезны. Или Вы про сферического коня как обычно ?