Главная страница

Руководство пользователя по программированию плк в CoDeSys 3


Скачать 5.57 Mb.
НазваниеРуководство пользователя по программированию плк в CoDeSys 3
Дата25.10.2022
Размер5.57 Mb.
Формат файлаpdf
Имя файлаCODESYS_manual.pdf
ТипРуководство пользователя
#754593
страница17 из 50
1   ...   13   14   15   16   17   18   19   20   ...   50
Раздел объявлений
Локальные переменные POU объявляются в разделе объявлений редактора программного компо- нента. Такими переменными могут быть входные и выходные переменные, переменные, одновре- менно являющиеся входными и выходными, локальные переменные, сохраняемые переменные и константы.
Обратите внимание на возможность создания шаблонов для глобальных переменных, типов данных, функций, функциональных блоков и программ (См. 'Файл' 'Создать по шаблону' - 'File' 'New from template').
Синтаксис, используемый при объявлении переменных, соответствует стандарту МЭК61131-3. Ре- комендации по наименованию приведены в приложении J.
Редактор раздела объявлений
Входные переменные
Входные переменные POU объявляются между ключевыми словами VAR_INPUT и END_VAR.
Значения этих переменных передаются в POU, при его вызове.
Пример:
VAR_INPUT
iIn1:INT
(*Входная переменная*)
END_VAR
Выходные переменные
Выходные переменные POU объявляются между ключевыми словами VAR_OUTPUT и
END_VAR. Через эти переменные POU передает данные в вызывающий его блок, который может читать их, даже не вызывая POU.

Редакторы CoDeSys
CoDeSys V2.3 5-4
Пример:
VAR_OUTPUT
iOut1:INT
(* Выходная переменная*)
END_VAR
Входные и выходные переменные
Объявляются между ключевыми словами VAR_IN_OUT и END_VAR. Эти переменные можно ис- пользовать как входные и как выходные.
Внимание: В отличие от ранее описанных переменных эти переменные передаются по ссылке, а не по значе- нию. Поэтому такая переменная не должна быть константой и не допускает прямого обращения:
<имя экземпляра >..
Пример:
VAR_IN_OUT
iInOut1:INT; (* Входная и выходная переменная *)
END_VAR
Локальные переменные
Объявляются между ключевыми словами VAR и END_VAR. Их можно использовать только в том
POU, в котором они объявлены. При выходе из POU значения этих переменных пропадают и не доступны извне.
Пример:
VAR
iLoc1:INT; (* Локальная переменная*)
END_VAR
Реманентные переменные
Такие переменные сохраняют свои значения при определенных сбоях в системе. Они бывают со- храняемые и постоянные.
Сохраняемые переменные обозначаются ключевым словом RETAIN. Эти переменные сохраняют свои значения, даже если произошла авария питания (выключение и включение) контроллера, что равносильно команде сброс ('Онлайн' 'Сброс' - 'Online' 'Reset''). Значения RETAIN переменных со-
храняются в энергонезависимой памяти.
Сохраняемые (Retain) переменные будут инициализированы заново при '
Онлайн
' '
Сброс (холод-
ный)
' ('
Online
' '
Reset (cold)
') и '
Онлайн
' '
Сброс (заводской)
' ('
Online
' '
Reset (original)
'), а также при загрузке программы в отличие от постоянных (Persistent) переменных.
Постоянные переменные обозначаются ключевым словом PERSISTENT. В отличие от сохраняемых переменных эти переменные сохраняют свои значения только при загрузке кода новой программы, но не при выключении питания или любом сбросе. Значения постоянных переменных размещают-
ся вне энергонезависимого ОЗУ.
Переменные PERSISTENT можно включить в RETAIN объявления.
- = переменная переинициализируется, x = значение сохраняется
Онлайн команда
VAR
VAR RETAIN
VAR PERSIS-
TENT
VAR RETAIN
PERSISTENT
VAR PERSISTENT
RETAIN
Сброс (Reset)
-
X
- x

Редакторы CoDeSys
CoDeSys V2.3 5-5
Сброс холодный (Reset cold)
-
-
-
-
Сброс заводской (Reset origin)
-
-
-
-
Загрузка (Download)
-
- x x
Горячее обновление
(Online Change) x
X x x
Пример:
VAR RETAIN
iRem1:INT; (* Сохраняемая переменная*)
END_VAR
Внимание:

Если локальная переменная объявлена как
VAR RETAIN, то она будет размещена в энергонезависимой области как глобальная.

Если локальная переменная функционального блока объявлена
VAR RETAIN, то все его данные цели- ком помещаются в энергонезависимую область памяти, но обслуживаться как
VAR RETAIN
будет только данная переменная.

Если локальная переменная функции объявлена
VAR RETAIN,
то это не дает никакого эффекта. Пере- менная не будет помещена в энергонезависимую область памяти! Аналогичное объявление
PERSISTENT
также не дает желаемого эффекта!
Константы, типизированные литеры
Константы обозначаются ключевым словом CONSTANT. Их можно объявлять локально и гло- бально.
Синтаксис:
VAR CONSTANT
<Идентификатор>:<Тип>:=<начальное значение>
END_VAR
Пример:
VAR CONSTANT
_iCon1:INT:=12; (* Константа*)
END_VAR
Правила создания констант и использования типизированных литер можно найти в приложении B.
Внешние переменные
Глобальные переменные, которые должны быть импортированы в POU, объявляются с помощью ключевого слова EXTERNAL. Такая переменная появляется в окне просмотра переменных в режи- ме Онлайн.
Если описания внешней переменная в POU и в разделе глобальных переменных не совпадают, то при компиляции появляется ошибка "Declaration of '' does not match global declaration!"
Если внешняя переменная не описана в разделе глобальных переменных, то при компиляции появ- ляется ошибка "Unkown global variable: ''!"

Редакторы CoDeSys
CoDeSys V2.3 5-6
Пример:
VAR_EXTERNAL
iVarExt1:INT:=12; (* Внешняя переменная *)
END_VAR
Зарезервированные слова
Все зарезервированные слова записываются заглавными буквами. Их нельзя использовать в качест- ве имен переменных. Например: VAR, VAR_CONSTANT, IF, NOT, INT.
Объявление переменных
Переменные объявляются следующим образом:
<Идентификатор> {AT <Адрес>}:<Тип> {:=<начальное значение>};
Части, заключенные в фигурных скобках, необязательны.
Имена переменных не должны содержать пробелов и специальных символов, должны объявляться только один раз и не должны совпадать с зарезервированными словами. Регистр букв в имени пе- ременной не имеет значения, т.е. переменные Var1, VAR1 и var1 не различаются. В именах пере- менных допустим знак подчеркивания. Переменные A_BCD и AB_CD считаются разными. Иден- тификатор не должен содержать подряд более одного символа подчеркивания. Длина индентифика- тора неограничена, все символы являются значимыми.
Все переменные и типы данных можно инициализировать. Для этого используется оператор “:=”.
Переменные простейших типов инициализируются константами. По умолчанию все переменные инициализируются нулем.
Пример:
iVar1:INT:=12; (* Переменная типа INT, инициализируемая числом 12*)
Если вы хотите поместить переменную по определенному адресу, то нужно объявить ее с ключе- вым словом AT.
Для быстрого объявления переменных используйте режим быстрого ввода.
В функциональных блоках можно объявлять переменные, используя неполный адрес. Чтобы ис- пользовать такую переменную в экземпляре функционального блока, она должна быть описана в разделе “
Конфигурация переменных
” (
Variable configuration
).
Обратите внимание на возможность использования автоматического объявления переменных.
Ключевое слово AT
Если вы хотите поместить переменную по определенному адресу, то нужно объявить ее с ключе- вым словом AT. Преимущество такого объявления состоит в том, что можно дать значащее имя любому адресу и изменять значение по этому адресу где угодно (например, в разделе объявлений).
Заметьте, что переменная, описывающая вход, не доступна для записи. Кроме того, объявление AT допустимо лишь для глобальных и локальных переменных, но не для входных или выходных пере- менных POU.
Пример:
xCounterHeat7
AT %QX0.0:
BOOL; wLightcabinetimpulse AT %IW2:
WORD; xDownload
AT %MX2.2:
BOOL;

Редакторы CoDeSys
CoDeSys V2.3 5-7
Если логическая переменная имеет адрес типа Byte, Word или Dword, она занимает целый байт, а не один бит!

Вставка” “Ключевое слово” (“Insert” ”Declaration keywords”)
Вы можете использовать эту команду для получения списка и быстрого ввода ключевых слов, до- пускаемых в разделе объявлений POU. После того как ключевое слово будет выбрано из списка, оно будет вставлено в текущую позицию курсора.
Также этот же список можно получить, если открыть Ассистент вводв (Input Assistant) и вы- брать пункт “
Объявления
” (
Declaration
).

Вставка” “Типы” (“Insert” ”Types”)
С помощью этой команды можно получить список и осуществить быстрый ввод доступных типов.
Этот же список можно получить и при использовании Ассистента ввода .
Типы разделены на несколько категорий:
§ Стандартные типы (Standard types): BOOL, BYTE и т.д.
§ Пользовательские типы (User Defined types): структуры, перечисления и т.д.
§ Стандартные функциональные блоки (Standard Function Blocks).
§ Пользовательские функциональные блоки (User defined Function blocks).
CoDeSys поддерживает все стандартные типы МЭК1131-3.
Выделение цветом
Все редакторы выделяют переменные соответствующим цветом при их объявлении или использо- вании. Это позволяет быстро находить синтаксические ошибки в программе. Если вы случайно за- были закрыть комментарий или ошиблись, вводя зарезервированное слово, то вы сразу заметите это.
Используются следующие цвета:
Синий
Ключевые слова
Зеленый
Комментарии в текстовых редакторах
Розовый
Специальные константы (например, TRUE/FALSE, T#3s,%IX0.0)
Красный
Ошибки ввода (например, неверные временные константы, ключевые слова, запи- санные строчными буквами)
Черный
Переменные, константы, операторы.
Режим быстрого ввода
Редактор раздела объявлений позволяет использовать режим быстрого набора. Эта функция выпол- няется, если вы заканчиваете ввод строки сочетанием клавиш +.
Поддерживаются следующие сокращения:

Все идентификаторы в этой строке преобразуются в объявления

Тип этих идентификаторов определяется словом, которым заканчивается строка.
B или Bool переменные будут объявлены как BOOL

Редакторы CoDeSys
CoDeSys V2.3 5-8
I или Int переменные будут объявлены как INT
R или Real переменные будут объявлены как REAL
S или String переменные будут объявлены как STRING

В других случаях (тип неуказан) переменные будут объявлены как BOOL (см. пример 1). По- следнее слово в строке понимается как идентификатор.

Любая константа, в зависимости от типа объявления, будет преобразована в начальное значе- ние переменной (примеры 2 и 3).

К адресу будет добавлено ключевое слово AT (пример 4).

Текст после точки с запятой будет превращен в комментарий (пример 4).

Все другие символы игнорируются (пример 5).
Примеры:
Быстрый ввод:
Объявление:
1
A
A: BOOL;
2
A B I 2
A, B: INT := 2;
3
ST S 2; A string
ST:STRING(2); (* A string *)
4
X %MD12 R 5 Real Number
X AT %MD12: REAL := 5.0;(* Real Number*)
5
B !
B: BOOL;
Автоматическое объявление переменных
Если поставлен флаг “
Автообъявление
” (
Autodeclaration
) в диалоговом окне “
Опции
” “
Редак-
тор
” (
Editor Options
), то при вводе имен еще не объявленных переменных в любом редакторе бу- дет появляться окно объявления переменных. С помощью этого диалогового окна можно объявить новую переменную.
Диалоговое окно для объявления переменных
В списке “
Класс
” (
Class
) выберите класс объявляемой переменной: локальная переменная (VAR), входная переменная (VAR_INPUT), выходная переменная (VAR_OUTPUT), входная/выходная пе- ременная (VAR_IN_OUT), глобальная переменная (VAR_GLOBAL).
Устанавливая флаги CONSTANT, RETAIN или PERSISTENT, вы помещаете переменную в соот- ветствующий раздел.
Имя объявляемой переменной нужно ввести в поле “
Имя
” (
Name
). По умолчанию тип переменной будет BOOL (поле Тип). Кнопка открывает диалог “
Ассистент ввода
” (
Input Assistant
), кото- рый позволяет выбрать тип из списка предложенных.
Объявление массивов.

Редакторы CoDeSys
CoDeSys V2.3 5-9
Если выбран тип данных ARRAY, то появиться диалог для ввода границ массива.
Диалог задания границ массива при автоматическом объявлении переменных
Для каждого из трех возможных индексов массива (столбец Разм. - Dim.) можно вводить началь- ный (Start) и конечный (End) индекс соответствующего измерения массива. Тип элементов массива вводится в поле “Тип” (Type). При этом удобно использовать Ассистент ввода (Input Assistant), ко- торый вызывается при нажатии кнопки
После закрытия этого диалога объявленная переменная появится в поле “
Тип
” (
Type
).
Пример: ARRAY [1..5, 1..3] OF INT.
В поле “
Начальное значение
” (
Initial Value
) вы можете задать начальное значение переменной.
Если переменная это массив или структура, вы можете открыть специальный диалог, нажав кнопку или .
Для массива такой диалог представляет собой список элементов; при щелчке мышкой после надпи- си “:=” появляется поле для ввода начального значения элемента.
При инициализации структуры ее элементы изображаются в виде дерева. Тип и начальное значение каждого элемента находятся в скобках. При щелчке мышкой после надписи “:=” появляется поле для ввода начального значения элемента. Если компонента структуры – массив, то, чтобы увидеть его элементы, щелкните мышкой на знаке "плюс" перед именем массива. Теперь начальные значе- ния элементов этого массива можно редактировать.
После закрытия диалога начальные значения элементов массива или структуры изображаются в поле Initial value в соответствии со стандартом МЭК.
Пример: x:=5,field:=2,3,struct2:=(a:=2,b:=3)
В поле “
Адрес
” (
Address
) задается адрес переменной (объявление AT)
При необходимости можно вставить комментарий. Переход к следующей строке осуществляется нажатием сочетания клавиш +.
После нажатия кнопки OK переменная будет объявлена в соответствующем разделе объявлений.
Примечание: Диалог объявления переменной можно также вызвать командой 'Правка' 'Авто объявление'
('Edit' 'Auto Declare'). Если в режиме Онлайн курсор стоит на имени переменной, то можно вызвать окно Autodeclare для просмотра деталей объявления данной переменной.
Номера строк в редакторе объявлений.
В режиме оффлайн, щелкнув по номеру строки, можно выделить строку целиком.

Редакторы CoDeSys
CoDeSys V2.3 5-14 ввода и разделах объявлений. Директива влияет на мониторинг переменной в окне объявления со- ответствующего POU. Используемая глобальная константа показывается под соответствующей структурной переменной.
Данную директиву нужно вводить в отдельной строке объявления структуры. Точка с запятой в конце этой строки не нужна.
Синтаксис:
{bitaccess ''}
Constant>:
Идентификатор глобальной константы, которая должна быть определена в спи- ске глобальных переменных.
:
Значение глобальной константы.

Комментарий
Обратите внимание: опция 'Замена констант' - 'Replace constants' (категория ‘Генератор кода’ (Build)) должна быть активна!
Пример применения данной директивы см. «Приложение В: Операнды в CoDeSys» раздел «Пере- менные», «Доступ к битам в переменных».
Директива управления линковкой компонентов
По умолчанию программный компонент POU (программа, функция, функциональный блок) или компонент определения типа данных (DUT) которые не использованы в проекте, исключаются при линковке кода проекта. Однако, может потребоваться чтобы некая функция (возможно из библио- теки) должна загружаться в контроллер даже если она не вызывается в проекте явно (например, функция контроля, вызываемая системой исполнения). В этом случае в любом месте раздела объяв- лений POU или в DUT нужно поместить директиву {link} которая вынудит линковщик включить компонент в код проекта.
Директивы управления отображением объявлений в библиотеках
В процессе создания библиотеки в CoDeSys, вы можете управлять тем, какие части раздела объяв- лений должны быть видны или не видны в Менеджере Библиотек при включении данной библиоте- ки в проект. Данные директивы не влияют на отображение при редактировании библиотеки. Их цель – скрыть от пользователя определенные детали реализации. Директивы {library private} и {li- brary public} действуют на все строки ниже и взаимно отменяют одна другую.
Синтаксис директив:
{library public} :отображать нижеследующие элементы в Менеджере Библиотек.
{library private} :не отображать нижеследующие элементы.
Пример: ниже дан фрагмент раздела объявлений библиотеки. Комментарий "(* видно всем*)" бу- дет виден в Менеджере Библиотек, а комментарий "(* это не для всех*)" не будет отображаться.
Переменные local и in3 также не будут отображаться:
{library public}(*
видно всем *) {library private} (*это не для всех*)
{library public}
FUNCTION afun : BOOL
VAR_INPUT in: BOOL;
END_VAR
{library private}

Редакторы CoDeSys
CoDeSys V2.3 5-15
VAR local: BOOL;
END_VAR
{library public}
VAR_INPUT in2: BOOL;
{library private} in3: BOOL;
{library public}
END_VAR
1   ...   13   14   15   16   17   18   19   20   ...   50


написать администратору сайта