- •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: Ошибки и предупреждения компилятора
- •Предупреждения
- •Ошибки
Приложение : Операторы и функции МЭК
Пример IL:
LD 16#45 ROL 2
ST res_byte
ROR
res:=ROR(in,n) Циклический сдвиг операнда in вправо на n бит, младшие биты последовательно заменяют старшие. Входные переменные и результат должны быть типа BYTE, WORD или
DWORD.
Следующий пример подчеркивает зависимость результата от типа входной переменной (см. примечание выше):
Пример ST:
PROGRAM ror_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:=ROR(in_byte,n); |
(* Результат 16#51 *) |
res_word:=ROR(in_word,n); |
(* Результат 16#4011 *) |
Пример FBD:
Пример IL:
LD 16#45 ROR 2
ST res_byte
10.4 Операторы выборки
Константы в примерах этого раздела используются исключительно для наглядности. Все операции можно выполнять и с переменными.
SEL
Бинарный выбор.
OUT:= SEL(G, IN0, IN1) означает OUT:= IN0 если G=FALSE; OUT:= IN1 если G=TRUE.
IN0, IN1 и OUT могут быть любого типа, G должно быть типа BOOL. Бинарный выбор возвращает одно из двух: IN0, если G ЛОЖЬ, или IN1, если G ИСТИНА.
CoDeSys V2.3 |
10-8 |
Приложение : Операторы и функции МЭК
Пример IL:
LD |
FALSE |
SEL |
3,4 |
ST |
Var1 (* Результат - 3 *) |
Пример FBD:
Внимание: Выражение, стоящее перед IN0 или IN1 может не вычисляться, если соответствующий вход не выбран, что определяется значением G.
MAX
Функция максимум возвращает наибольшее из двух значений.
OUT := MAX(IN0, IN1)
IN0, IN1 и OUT могут быть любого типа.
Пример IL:
LD |
90 |
MAX |
30 |
MAX |
40 |
MAX |
77 |
ST |
Var1 (* Результат - 90 *) |
Пример FBD:
MIN
Функция минимум возвращает наименьшее из двух значений. OUT := MIN(IN0, IN1)
IN0, IN1 и OUT могут быть любого типа.
Пример IL:
LD |
90 |
MIN |
30 |
MIN |
40 |
MIN |
77 |
ST |
Var1 (* Результат 30 *) |
Пример FBD:
CoDeSys V2.3 |
10-9 |
Приложение : Операторы и функции МЭК
LIMIT
Ограничитель
OUT := LIMIT(Min, IN, Max) означает: OUT := MIN (MAX (IN, Min), Max)
Max задает верхнюю и Min нижнюю границы ограничителя. Если IN больше верхнего или меньше нижнего пределов, результат ‘обрезается’ соответственно до Max или Min.
IN и OUT могут быть любого типа.
Пример IL:
LD 90 LIMIT 30,80
ST |
Var 1 (* Результат - 80 *) |
MUX
Мультиплексор. Возвращает K-е значение из входных переменных. OUT := MUX(K, IN0,...,INn) означает:
OUT := INK.
IN0, ...,INn и OUT могут быть любого типа. Переменная K должна быть BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT или UDINT.
Пример IL:
LD 0
MUX 30,40,50,60,70,80
ST |
Var 1 |
(* Результат - 30 *) |
Внимание: В результате оптимизации выражение, стоящее перед входом, может не вычисляться, если соответствующий вход не выбран. В режиме эмуляции все выражения вычисляются.
10.5 Операторы сравнения
GT
Больше
Двоичный оператор возвращает TRUE, если значение первого параметра больше второго.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Пример IL:
LD |
20 |
|
GT |
30 |
|
ST |
Var 1 |
(*Результат - ЛОЖЬ*) |
Пример ST:
VAR1 := 20 > 30 > 40 > 50 > 60 > 70;
Пример FBD:
CoDeSys V2.3 |
10-10 |
Приложение : Операторы и функции МЭК
LT
Меньше
Двоичный оператор возвращает TRUE, если значение первого параметра меньше второго.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Пример IL: |
|
|
LD |
20 |
|
LT |
30 |
|
ST |
Var 1 |
(*Результат - ИСТИНА*) |
Пример ST: |
|
|
VAR1 := 20 < 30;
Пример FBD:
LE
Меньше или равно
Двоичный оператор возвращает TRUE, если значение первого параметра меньше или равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Пример IL: |
|
|
LD |
20 |
|
LE |
30 |
|
ST |
Var 1 |
(*Результат - ИСТИНА*) |
Пример ST: |
|
|
VAR1 := 20 <= 30;
Пример FBD:
GE
Больше или равно
Двоичный оператор возвращает TRUE, если значение первого параметра больше или равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
CoDeSys V2.3 |
10-11 |
|
Приложение |
: Операторы и функции МЭК |
Пример IL: |
|
|
LD |
60 |
|
GE |
40 |
|
ST |
Var 1 |
(*Результат - ИСТИНА*) |
Пример ST: |
|
|
VAR1 := 60 >= 40;
Пример FBD:
EQ
Равно
Двоичный оператор возвращает TRUE, если значение первого параметра равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Пример IL: |
|
|
LD |
40 |
|
EQ |
40 |
|
ST |
Var 1 |
(*Результат - ИСТИНА*) |
Пример ST: |
|
|
VAR1 := 40 = 40;
Пример FBD:
NE
Не равно
Двоичный оператор возвращает TRUE, если значение первого параметра не равно второму.
Операнды могут быть типов BOOL, BYTE, WORD, DWORD, SINT, USINT, INT, UINT, DINT, UDINT, REAL, LREAL, TIME, DATE, TIME_OF_DAY, DATE_AND_TIME и STRING.
Пример IL:
LD |
40 |
|
NE |
40 |
|
ST |
Var 1 |
(*Результат - FALSE*) |
Пример ST:
VAR1 := 40 <> 40;
Пример FBD:
CoDeSys V2.3 |
10-12 |
