Предупреждение при возврате переменной из функции в GXW2 |
Здравствуйте, гость ( Вход | Регистрация )
Предупреждение при возврате переменной из функции в GXW2 |
22.03.2018 - 14:59
Сообщение
#1
|
|
Читатель Группа: Пользователи Сообщений: 2 Регистрация: 22.03.2018 Пользователь №: 11002 |
Здравствуйте, столкнулся с такой проблемой, при возврате переменной из функции (не FB) компилятор выдает предупреждение:
Цитата No. Result Data Name Class Content Error Code 1 WARNING QueueBySetOn Program compile A WORD/DWORD type label is being used in the return value. The instruction used for the generated code will be changed. When using the designated instruction, use ANY_SIMPLE type except WORD/DWORD type. C9026 Программа написана в GX Works2 на языке ST. ПЛК - FX3U. Код FOR i_var := 0 TO n_i BY 1 DO TempNumbs := Numbs; TempDevSetsOnPerTime := DevSetsOnPerTime; QueueBySetOn[i_var] := 0; END_FOR; QueueBySetOn[1] := TempNumbs[n_i]; QueueBySetOn[3] := 1; FOR i_var := 0 TO n_i BY 1 DO IF (TempDevSetsOnPerTime[TempNumbs[i_var]] < MaxSetsOnPerTime) THEN QueueBySetOn[0] := TempNumbs[i_var]; QueueBySetOn[3] := 0; EXIT; END_IF; END_FOR; Получается, что GXW2 не может возвращать из функции обычное число? Если да, то как выйти из этого положения? |
|
|
23.03.2018 - 10:17
Сообщение
#2
|
|
Гигант мысли Группа: Пользователи Сообщений: 252 Регистрация: 15.11.2007 Пользователь №: 6407 |
Создать глобальную переменную, и присвоить в функции этой переменной число.
А вообще ошибка преобразования к типу WORD/DWORD, попробуйте присваивать к INT или что там есть в наличии (не использую GX Works). Сообщение отредактировал m_by - 23.03.2018 - 10:24 |
|
|
23.03.2018 - 11:42
Сообщение
#3
|
|
Читатель Группа: Пользователи Сообщений: 2 Регистрация: 22.03.2018 Пользователь №: 11002 |
Создать глобальную переменную, и присвоить в функции этой переменной число. А вообще ошибка преобразования к типу WORD/DWORD, попробуйте присваивать к INT или что там есть в наличии (не использую GX Works). В GX Works2 INT это и есть WORD. В общем, после написания поста, я нашел как исправить положение: при переводе всех локальных переменных в один тип данных WORD(Signed) предупреждение исчезло. Хотя эти переменные не пересекались в функции. Возможно, в ПЛК есть какой-то флаг который отвечает за знак числа и этот флаг в функции всего один для всех типов данных (может кто знает, подскажите пожалуйста). Сообщение отредактировал Starsonic - 23.03.2018 - 11:42 |
|
|
Текстовая версия | Сейчас: 20.09.2024 - 07:17 |