- •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: Ошибки и предупреждения компилятора
- •Предупреждения
- •Ошибки
Приложение : Операторы и функции МЭК
MOVE
Присвоение значения одной переменной другой соответствующего типа. В графических редакторах CFC и LD существует возможность управлять разрешением работы блока (разрешать или запрещать операцию) с помощью входов EN/EN0. В FBD этого делать нельзя.
Пример применения EN/EN0 в CFC:
Только если значение en_i равно TRUE, значение переменной var1 будет присвоено var2.
Пример IL:
LD ivar1 MOVE ivar2 ST ivar2
(! Аналогичный результат дает: LD ivar1
ST ivar2 )
Пример ST:
ivar2 := MOVE(ivar1);
( ! Аналогичный результат дает: ivar2 := ivar1; )
10.2 Битовые операторы
AND
Побитное И. Операция применима к типам BOOL, BYTE, WORD или DWORD.
Пример IL:
Var1 BYTE
LD |
2#1001_0011 |
AND |
2#1000_1010 |
ST |
Var 1 (* Результат 2#1000_0010 *) |
Пример ST:
var1 := 2#1001_0011 AND 2#1000_1010
Пример FBD:
Внимание: В логических выражениях нельзя гарантировать присваивание промежуточных результатов. Например, если условие SFS перехода выглядит так:
CoDeSys V2.3 |
10-4 |
Приложение : Операторы и функции МЭК
то, значение переменной z может быть не присвоено. Это происходит по причине оптимизации вычислений компилятором. Если значения x и y FALSE, то конечный результат очевиден и остаток выражения вычислять не нужно.
OR
Побитное ИЛИ. Операция применима к типам BOOL, BYTE, WORD или DWORD.
Пример IL:
var1 :BYTE; |
|
|
LD |
2#1001_0011 |
|
OR |
2#1000_1010 |
|
ST |
var1 |
(* Результат 2#1001_1011 *) |
Пример ST:
Var1 := 2#1001_0011 OR 2#1000_1010
Пример FBD:
Внимание: См. примечание к AND.
XOR
Побитное исключающее ИЛИ. Операция применима к типам BOOL, BYTE, WORD или DWORD.
Пример IL:
Var1 :BYTE;
LD |
2#1001_0011 |
XOR |
2#1000_1010 |
ST |
Var1 (* Результат 2#0001_1001 *) |
Пример ST:
Var1 := 2#1001_0011 XOR 2#1000_1010
Пример FBD:
Внимание: Допускается расширяемая форма, т.е. XOR имеет более двух входов. В этом случае входы обрабатываются попарно, затем к результатам опять применяется XOR. Такой алгоритм определен стандартом.
NOT
Побитное НЕ. Операция применима к типам BOOL, BYTE, WORD или DWORD.
Пример IL:
Var1 :BYTE;
LD |
2#1001_0011 |
NOT |
|
ST |
Var1 (* Результат 2#0110_1100 *) |
CoDeSys V2.3 |
10-5 |
Приложение : Операторы и функции МЭК
Пример ST:
Var1 := NOT 2#1001_0011
Пример FBD:
10.3 Операторы сдвига
Внимание: Количество бит, задействованных в данных операциях, определяется типом входной переменной! Тип переменной результата не влияет на процесс вычисления. (См. ST примеры ниже). Если входная переменная представлена константой, выбирается наиболее компактный из возможных типов данных.
SHL
res:=SHL(in,n) Побитный сдвиг операнда in влево на n бит с дополнением нулями справа.
Входные переменные и результат должны быть типа BYTE, WORD или DWORD.
В следующем примере представлены различные результаты res_byte и res_word в зависимости от типа входной переменной (BYTE и WORD), хотя числовые их значения равны.
Пример ST:
PROGRAM shl_st VAR
in_byte:BYTE:=16#45; in_word:WORD:=16#45; res_byte:BYTE; res_word:WORD; n:BYTE:=2;
END_VAR |
|
res_byte:=SHL(in_byte,n); |
(* Результат 16#14 *) |
res_word:=SHL(in_word,n); |
(* Результат 16#0114 *) |
Пример FBD:
Пример IL:
LD 16#45 SHL 2
ST res_byte
SHR
res:= SHR(in,n) Побитный сдвиг операнда in вправо на n бит с дополнением нулями слева.
Входные переменные и результат должны быть типа BYTE, WORD или DWORD.
CoDeSys V2.3 |
10-6 |
Приложение : Операторы и функции МЭК
Следующий пример подчеркивает зависимость результата от типа входной переменной (см. примечание выше):
Пример ST:
PROGRAM shr_st |
|
VAR |
|
in_byte:BYTE:=16#45; |
|
in_word:WORD:=16#45; |
|
res_byte:BYTE; |
|
res_word:WORD; |
|
n:BYTE:=2; |
|
END_VAR |
|
res_byte:=SHR(in_byte,n); |
(* Результат 16#11 *) |
res_word:=SHR(in_word,n); |
(* Результат 16#0011 *) |
Пример FBD:
Пример IL:
LD 16#45 SHR 2
ST res_byte
ROL
res:=ROL(in,n) Циклический сдвиг операнда in влево на n бит, младшие биты последовательно заполняются старшими. Входные переменные и результат должны быть типа BYTE, WORD или
DWORD.
В следующем примере представлены различные результаты res_byte и res_word в зависимости от типа входной переменной (BYTE и WORD), хотя числовые их значения равны.
Пример ST:
PROGRAM rol_st |
|
VAR |
|
in_byte:BYTE:=16#45; |
|
in_word:WORD:=16#45; |
|
res_byte:BYTE; |
|
res_word:WORD; |
|
n:BYTE:=2; |
|
END_VAR |
|
res_byte:=ROL(in_byte,n); |
(* Результат 16#15 *) |
res_word:=ROL(in_word,n); |
(* Результат 16#0114 *) |
Пример FBD:
CoDeSys V2.3 |
10-7 |
