- •1 Краткое представление CoDeSys
- •1.1 Что такое CoDeSys
- •1.2 Представление о работе в CoDeSys
- •1.3 Состав базовой пользовательской документации по CoDeSys
- •2 Что есть что в CoDeSys
- •2.1 Компоненты проекта
- •2.2 Языки программирования
- •Список инструкций (IL)
- •Модификаторы и операторы IL
- •Структурированный текст (ST)
- •Язык последовательных функциональных схем (SFC)
- •Язык функциональных блоковых диаграмм (FBD)
- •Непрерывные функциональные схемы (CFC)
- •Язык релейных диаграмм (LD)
- •2.3 Отладка и онлайн функции
- •3 Пишем простой пример
- •3.1 Блок управления светофором
- •3.2 Визуализация примера
- •4 Работа в системе программирования CoDeSys
- •4.1 Главное окно
- •4.2 Опции проекта
- •4.3 Управление проектом
- •4.4 Управление объектами проекта
- •4.5 Основные функции редактирования
- •4.6 Основные функции Онлайн
- •4.7 Работа с окнами
- •4.8 Помощь
- •5 Редакторы CoDeSys
- •5.1 Общие элементы редакторов
- •5.2 Редактор раздела объявлений
- •Работа в редакторе объявлений
- •Редактор раздела объявлений в режиме Онлайн
- •Директивы компилятора
- •5.3 Текстовые редакторы
- •Работа в текстовых редакторах
- •Редактор языка IL
- •Редактор языка ST
- •5.4 Графические редакторы
- •Работа в графических редакторах
- •Редактор FBD
- •Редактор LD
- •Редактор SFC
- •Редактор CFC
- •6 Ресурсы
- •6.1 Обзор ресурсов
- •Глобальные переменные
- •Конфигурационные переменные
- •Файл комментариев переменных
- •6.3 Конфигурация тревог (Alarm Configuration)
- •Обзор
- •Общая информация и терминология
- •Классы тревог
- •Группы тревог
- •Запись тревог
- •'Дополнения' (Extras): 'Настройки' (Settings)
- •6.4 Менеджер библиотек (Library Manager)
- •6.5 Бортжурнал (Log)
- •6.6 Конфигуратор ПЛК (PLC Configuration)
- •Обзор
- •Работа в редакторе конфигуратора ПЛК
- •Общие параметры конфигурации ПЛК
- •Диалог специфической настройки параметров
- •Конфигурация модулей ввода/вывода
- •Конфигурация канала
- •Конфигурирование модулей Profibus
- •Конфигурирование CANopen-модулей
- •Конфигурирование ведомого CANopen-устройства (CANopen Slave)
- •Конфигурирование модулей DeviceNet
- •Конфигурация ПЛК в режиме Онлайн
- •Сканирование аппаратуры/ Состояние/ Диагностика ПЛК
- •6.7 Конфигуратор задач (Task Configuration)
- •Обзор
- •Работа в конфигураторе задач
- •Системные события
- •Конфигуратор задач в режиме онлайн
- •6.8 Менеджер просмотра (Watch and Recipe Manager)
- •Обзор
- •Менеджер просмотра в режиме оффлайн
- •Менеджер просмотра в режиме Онлайн
- •6.9 Цифровая трассировка (Sampling Trace)
- •Обзор
- •Конфигурация трассировки
- •Управление процессом трассировки
- •Отображение данных
- •‘Дополнения’ ‘Запись значений трассировки’ ('Extras' 'Save trace values')
- •6.10 Рабочая область (Workspace)
- •6.11 Менеджер параметров (Parameter Manager)
- •Обзор и подключение
- •Редактор менеджера параметров. Обзор
- •Типы списков параметров и их атрибуты
- •Управление списками параметров
- •Редактирование списка параметров
- •Менеджер параметров в режиме онлайн
- •Экспорт/импорт списков параметров
- •6.12 Настройки целевой платформы (Target Settings)
- •6.13 ПЛК-Браузер (PLC-Browser)
- •Общие сведения
- •Набор команд ПЛК-Браузера
- •Макрорасширения команд ПЛК-Браузера
- •Вспомогательные команды ПЛК-Браузера
- •6.14 Инструменты (Tools)
- •Свойства доступных инструментов (Object Properties)
- •Настройка команд инструментов
- •Часто задаваемые вопросы по инструментам
- •7.1 Что такое ENI?
- •7.2 Условия работы с ENI базой данных в проекте
- •7.3 Работа с ENI базой данных в проекте CoDeSys
- •7.4 Категории объектов в базе данных проекта
- •8 DDE интерфейс
- •8.1 DDE интерфейс CoDeSys
- •8.2 DDE обмен посредством GatewayDDE Server
- •9 Менеджер лицензирования CoDeSys
- •9.1 Обзор
- •9.2 Создание лицензированных библиотек в CoDeSys
- •10.1 Арифметические операторы
- •10.2 Битовые операторы
- •10.3 Операторы сдвига
- •10.4 Операторы выборки
- •10.5 Операторы сравнения
- •10.6 Адресные операторы
- •Вспомогательные функции
- •10.8 Оператор вызова
- •10.9 Явное преобразование типов
- •10.10 Математические функции
- •Приложение В: Операнды в CoDeSys
- •Константы
- •Переменные
- •Адреса
- •Функции в роли операндов
- •Приложение С: Типы данных CoDeSys
- •Элементарные типы данных
- •Пользовательские типы данных
- •Приложение D: Библиотеки CoDeSys
- •Стандартная библиотека Standard.lib
- •Строковые функции
- •Переключатели
- •Детекторы импульсов
- •Счетчики
- •Таймеры
- •Библиотека UTIL.LIB
- •BCD преобразования
- •Бит/байт функции
- •Дополнительные математические функции
- •Регуляторы
- •Генераторы сигналов
- •Преобразования аналоговых сигналов
- •Аналоговые компараторы
- •Библиотека AnalyzationNew.lib
- •Системные библиотеки CoDeSys
- •Приложение E: Краткий справочник по операторам и компонентам библиотек
- •Операторы CoDeSys:
- •Компоненты Standard.lib:
- •Компоненты Util.lib:
- •Приложение F: Командная строка / командный файл
- •Командная строка
- •Командный файл (cmdfile)
- •Приложение G: Сименс импорт.
- •Импорт из символьных файлов SEQ
- •Импорт из файла проекта S5
- •Конвертирование языка S5 в МЭК C 61131-3
- •Приложение H: Опции целевых систем
- •Системные опции целевых платформ (Target Platform)
- •Intel 386 совместимые
- •Motorola 68K
- •Infineon C16x
- •ARM и Power PC
- •MIPS
- •'Hitachi SH'
- •8051 совместимые
- •Infineon 'TriCore’
- •Опции распределения памяти (Memory Layout).
- •Опции общей категории (General)
- •Опции категории Сетевая функциональность
- •Опции категории Визуализация
- •Приложение I: Использование клавиатуры
- •Приложение J: Рекомендации по наименованию
- •Наименование идентификаторов
- •Идентификаторы переменных
- •Идентификаторы пользовательских типов (DUT)
- •Идентификаторы визуализаций
- •Приложение K: Ошибки и предупреждения компилятора
- •Предупреждения
- •Ошибки
Приложение В: Операнды в CoDeSys
Приложение В: Операнды в CoDeSys
В качестве операндов могут выступать константы переменные, адреса и вызовы функций.
Константы
BOOL
BOOL константы могут иметь значение TRUE или FALSE.
TIME
Константы типа TIME в CoDeSys всегда начинаются с префикса "t" или "T" (длинная форма "time" или "TIME") и знака числа "#". Далее следует собственно время, которое может включать дни "d", часы "h", минуты "m", секунды "s" и миллисекунды "ms". Нет необходимости обязательно определять все составляющие времени, но присутствующие поля обязаны следовать именно в таком порядке (d, затем h, затем m, затем s, затем m, затем ms).
Правильные примеры TIME констант в ST:
TIME1 := T#14ms;
TIME1 := T#100S12ms; (*Старший компонент может выходить за свой предел*) TIME1 := t#12h34m15s;
Ошибочные примеры: |
|
TIME1 := t#5m68s; |
(*Младший компонент вышел за предел*) |
TIME1 := 15ms; |
(*T# пропущено*) |
TIME1 := t#4ms13d; |
(*Ошибочная последовательность*) |
DATE
Константы типа DATE начинаются с префикса "d", "D", "DATE" или "date" и последующего "#". Даты задаются в формате Год-Месяц-День.
Примеры:
DATE#1996-05-06 d#1972-03-29
См. также 10.14 Переменные типа DATE
TIME_OF_DAY
Константы типа A TIME_OF_DAY начинаются с префикса "tod#", "TOD#", "TIME_OF_DAY#"
или "time_of_day#" и последующего времени в формате: Часы:Минуты:Секунды. Секунды можно задавать в виде десятичной дроби.
Примеры:
TIME_OF_DAY#15:36:30.123 tod#00:00:00
DATE_AND_TIME
Константы типа DATE_AND_TIME начинаются с префикса "dt#", "DT#", "DATE_AND_TIME#"
или "date_and_time#". Дата и время приводятся последовательно через дефис.
Примеры:
DATE_AND_TIME#1996-05-06-15:36:30 dt#1972-03-29-00:00:00
CoDeSys V2.3 |
10-27 |
Приложение В: Операнды в CoDeSys
Целочисленные константы
Числовые значения могут быть представлены в двоичной, восьмеричной, десятичной и шестнадцатеричной форме.
Если число не десятичное, необходимо указать основание числа с префиксом # перед числом. Цифры диапазона 10-15 в шестнадцатеричной форме заменяются литерами A-F.
Для удобства чтения в любом месте числа можно вставить подчеркивание.
Примеры:
14 |
(*десятичное число*) |
2#1001_0011 |
(*двоичное число*) |
8#67 |
(*восьмеричное число*) |
16#A |
(*шестнадцатеричное число*) |
Данные числа могут быть представлены типами BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL и LREAL. Неявное преобразование из "большего" в "младший" тип переменной не производится. Это означает, что нельзя просто использовать DINT как INT переменную, необходимо применять преобразование типов (см. раздел «Преобразование типов»).
REAL/LREAL
REAL и LREAL константы представляются в формате с десятичной точкой либо в экспоненциальном формате. Запятая вместо точки не допускается.
Примеры:
7.4 но не 7,4
1.64e+009 но не 1,64e+009
STRING
Константы типа STRING представляются в виде набора символов, заключенных в одинарные кавычки. Строка может содержать пробелы и специальные символы (например, умляуты). Символы, не имеющие печатного образа, могут быть заданы шестнадцатеричным кодом в виде двух цифр, следующих за знаком доллара ($). Специальные комбинации из двух символов, начинающиеся со знака доллара, интерпретируются следующим образом:
$$ |
Знак доллара |
$' |
Одинарная кавычка |
$L или $l |
Line feed |
$N or $n |
New line |
$P or $p |
Page feed |
$R or $r |
Line break |
$T or $t |
Tab |
Примеры:
'Полет нормальный' ' Abby and Craig ' ':-)'
Типизированные константы
Обычно при использовании МЭК констант подразумевается наименьший из возможных типов данных. Если нужно точно указать тип константы, применяется префикс типа: <Type>#<Literal>
CoDeSys V2.3 |
10-28 |
Приложение В: Операнды в CoDeSys
<Type> указывает необходимый тип. Это может быть: BOOL, SINT, USINT, BYTE, INT, UINT, WORD, DINT, UDINT, DWORD, REAL, LREAL. Тип нужно указывать заглавными буквами.
<Literal> указывает значение константы.
Пример:
var1:=DINT#34;
Если значение константы не соответствует требуемому типу, CoDeSys выдаст соответствующее сообщение об ошибке.
Переменные
Переменные могут быть объявлены либо как локальные в разделе определений POU, либо как глобальные - в списке глобальных переменных.
Внимание: Глобальная и локальная переменные могут иметь одинаковое имя. В POU, где объявлена такая локальная переменная, она оказывается «сильнее» одноименной глобальной. Использовать одноименные глобальные переменные нельзя (например, объявленные в конфигурации контроллера и в списке глобальных переменных).
Имя переменной (идентификатор) не должно содержать пробелов и спецсимволов, не должно объявляться более одного раза и не должно совпадать с ключевыми словами. Регистр символов не учитывается, это означает, что VAR1, Var1 и var1 - это одна и та же переменная.
Символ подчеркивания является значимым, т.е. "A_BCD" и "AB_CD" - это разные имена.
Имя должно включать не более одного символа подчеркивания. Ограничений на длину имени нет. Область применения переменной задается ее типом. Список всех объявленных переменных в CoDeSys доступен через ассистент ввода (Input Assistant).
Системные флаги
Системные флаги - это неявно объявленные переменные, различные для конкретных моделей PLC. Для получения списка доступных системных флагов используйте команду "Вставка" "Операнд" ("Insert" "Operand"). В диалоге "Ассистент ввода" (Input Assistant) флаги собраны в разделе
System Variable.
Синтаксис доступа к элементам массивов, структур и POU
Элемент двумерного массива: <ИмяМассива>[Индекс1, Индекс2]
Переменная структуры: <ИмяСтруктуры>.<ИмяПеременной>
Переменная программы или функционального блока: <ИмяФункциональногоБлока>.<ИмяПеременной>
Доступ к битам в переменных
В целочисленных переменных существует возможность обращаться к отдельным битам. Для этого указывается номер бита, начиная с 0 через точку после имени.
a : INT;
b : BOOL;
...
a.2 := b;
CoDeSys V2.3 |
10-29 |
Приложение В: Операнды в CoDeSys
В примере значение третьего бита переменной a будет присвоено переменной b.
Если указанный номер бита превышает размер типа, формируется специальное сообщение: «Index '<n>' outside the valid range for variable '<var>'»
Битовая адресация применима для типов :SINT, INT, DINT, USINT, UINT, UDINT, BYTE, WORD, DWORD.
Если битовая адресация для данного типа не поддерживается, CoDeSys формирует сообщение: «Invalid data type '<type>' for direct indexing»
Битовую адресацию нельзя использовать с переменными VAR_IN_OUT!
Битовая адресация через глобальные константы
Если объявить целую глобальную константу, то ее можно будет затем использовать для доступа к битам. Например, так:
Объявление константы
VAR_CONSTANT GLOBAL enable:int := 1;
END_VAR
Пример 1, битовая адресация через константу: Объявление POU:
VAR xxx:int; END_VAR
Битовая адресация:
xxx.enable := true; (*установлен в единицу второй бит переменной xxx *)
Пример 2, битовая адресация к элементу структуры: Объявление структуры stru1:
TYPE stru1 : STRUCT
bvar: BOOL; rvar: REAL; wvar: WORD;
{bitaccess: 'enable' 42 'Start drive'} END_STRUCT
END_TYPE
Объявление POU:
VAR
x:stru1; END_VAR
Битовая адресация:
x.enable := true;
Эта инструкция установит 42й бит переменной x. Поскольку bvar занимает 8 бит, rvar занимает 32 бита, а битовый доступ обращается ко второму биту переменной wvar, получающей в результате значение 4.
CoDeSys V2.3 |
10-30 |
