Привет всем.
Глюк проявился: не хочет создавать переменную с именем STEP.
Код:function_block functionblock1 //имя функционального блока. // ---------------------------------------------------------------- var_input //объявление входных переменных InADCa, InADCb, InADCc, InADCd :real; // аналоговые входы InMAX :real; InMIN :real; // пределы входные UotMAX :real; UotMIN :real; // пределы выходные Sek, Min, Hour :udint; // время end_var // ---------------------------------------------------------------- var_output //объявление выходных переменных OutK1, OutK2, OutK3, OutK4 :bool; // выходы тразисторные SvZf1 :bool; SvKf2 :bool; // светодиоды на панели ПР200 OutADCxA, OutADCxB, OutADCxC :real; end_var // ---------------------------------------------------------------- var //объявление локальных переменных STEP :udint; end_var end_function_block
ОШИБКА : Имя переменной STEP содержит недопустимые символы
Несколько раз проверял.
STEP используется в чреве компилятора для своих нужд?
Или это какой оператор или константа?
Из хелпа:
Ключевые слова могуут быть введены в символах верхнего и нижнего регистра. Пробелы и метки табуляции не влияют на синтаксис, они могут использоваться везде.
Структура выражения: [variable] := [value];
Выражения состоят из операндов и операторов. Операндом может быть литерал, переменная, структурированная переменная, компонент структурированной переменной, обращение к функции или прямой адрес.
1. Слово "могуут".
2. "или прямой адрес" - это как?
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
решение проблемы
Зарезервированные слова и языконезависимая спецификация
Зарезервированные слова представляют определённую проблему при переводе текста с языка на язык (а иногда даже с компилятора на компилятор) и при написании ПО, разные части которого написаны на разных языках — может случиться, что на языке А будет создан идентификатор, который является зарезервированным словом языка Б и поэтому он окажется недоступным. Обычно стараются избегать слов, которые в каком-либо из широко известных языков являются зарезервированными. Впрочем, бывает, что при расширении языка слово из разрешённого переходит в зарезервированное. Вот несколько способов решения этой проблемы.
Венгерская нотация и другие подобные способы именования переменных делают идентификаторы заведомо отличающимися от ключевых слов любого языка.
.NET требует, чтобы все совместимые языки позволяли каким-либо образом задавать идентификатор, совпадающий с ключевым словом. Например, в C# слово this является зарезервированным, а @this — идентификатором.
Похожим образом поступили во встроенном ассемблере Паскаля: eax — зарезервированное слово (название регистра), &eax — идентификатор.
В Си все нестандартные (производителе- и платформозависимые) зарезервированные слова начинаются с двух знаков подчёркивания. Например, в C Builder может быть такая запись:
Bad programmers worry about the code. Good programmers worry about data structures and their relationships
среди успешных людей я не встречала нытиков
Барбара Коркоран
Да это всё понятно. Мы не о том, а именно о слове step. Человек, мало занимающийся программированием откуда узнаёт о таком? Могли бы в документации указать список зарезервированных слов, которые нельзя применять, и всё.