- •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: Ошибки и предупреждения компилятора
- •Предупреждения
- •Ошибки
Приложение D: Библиотеки CoDeSys
Пример FBD:
Пример ST:
TOFInst(IN := VarBOOL1, PT:= T#5s);
VarBOOL2 :=TOFInst.Q;
RTC
Функциональный блок ‘часы реального времени’. После установки начального значения, RTC выдает текущие время и дату.
RTC(EN, PDT, Q, CDT) Входы EN и PDT, выходы Q и CDT типов BOOL и DATE_AND_TIME со-
ответственно.
Пока EN равен FALSE, выход Q равен FALSE и CDT равен DT#1970-01-01-00-00:00:00.
При включении EN = TRUE в часы загружается время PD и начинается отсчет времени. На выходе CDT. Если EN перейдет в FALSE, CDT сбросится в начальное значение DT#1970-01-01-00- 00:00:00. Обратите внимание, что установка времени PDT происходит по фронту.
Библиотека UTIL.LIB
Данная библиотека содержит дополнительный набор различных функций и функциональных блоков, применяемых для BCD и бит/байт преобразований, дополнительных математических функций, а также регуляторов, генераторов и преобразований аналоговых сигналов.
Специальная версия этой библиотеки UTIL_NO_REAL не содержит функций и функциональных блоков, использующих переменные типа REAL.
BCD преобразования
Байт, представленный в формате BCD, содержит числа от 0 до 99. Каждый десятичный знак занимает 4 бита. Биты 4-7 содержат первую цифру – число десятков. Формат BCD подобен шестнадцатеричному представлению с ограничением диапазона чисел 0..99 вместо 0.. FF.
Например: Преобразуем число 51 в BCD формат. 5 - это двоичное 0101, 1 - это 0001. В результате получается байт 0101_0001.
BCD_TO_INT
Функция преобразует байт формата BCD в число типа INT.
Входной параметр функции типа BYTE и выход типа INT. Если входное значение не укладывается в формат BCD, функция возвращает -1.
Примеры ST:
i:=BCD_TO_INT(73); (* Результат 49 *) k:=BCD_TO_INT(151); (*Результат 97 *)
CoDeSys V2.3 |
10-53 |
Приложение D: Библиотеки CoDeSys
l:=BCD_TO_INT(15); (* -1, потому что F0 не BCD формат*)
INT_TO_BCD
Функция преобразует INTEGER число в байт формата BCD.
Входной параметр функции типа INT и выход типа BYTE.
Если INTEGER число не может быть представлено в BCD формате, то функция возвращает значе-
ние 255.
Примеры ST:
i:= INT_TO_BCD(49); |
(*Результат 73 *) |
k:=INT_TO_BCD (97); |
(*Результат 151 *) |
l:= INT_TO_BCD (100); |
(* Ошибка! Выход: 255 *) |
Бит/байт функции
EXTRACT
Параметры функции: DWORD X и BYTE N. Выход типа BOOL, отражает значение бита N в числе X. Биты нумеруются с 0.
Примеры ST:
FLAG:=EXTRACT(X:=81,N:=4); (* Результат: TRUE, 81 это 1010001, 4й бит 1 *) FLAG:=EXTRACT(X:=33, N:=0); (* Результат: TRUE, 33 это 100001,бит ‘0’ это 1 *)
PACK
Функция сворачивает восемь параметров B0, B1, ..., B7 типа BOOL в один BYTE.
Функциональный блок UNPACK выполняет обратную распаковку.
PUTBIT
Параметры функции: DWORD X, BYTE N и BOOL B.
PUTBIT устанавливает N-й бит числа X в состояние, заданное B. Биты нумеруются с 0.
Примеры ST:
A:=38; |
(* двоичное 100110 *) |
B:=PUTBIT(A,4,TRUE); |
(* Результат : 54 = 2#110110 *) |
C:=PUTBIT(A,1,FALSE); |
(* Результат : 36 = 2#100100 *) |
UNPACK
UNPACK преобразует вход B типа BYTE в 8 выходов B0,...,B7 типа BOOL.
Обратная упаковка производится с помощью PACK.
Пример FBD:
CoDeSys V2.3 |
10-54 |
Приложение D: Библиотеки CoDeSys
Дополнительные математические функции
DERIVATIVE
Функциональный блок выполняет численное дифференцирование.
Аналоговый вход IN и выход OUT типа REAL. Вход TM задает время дифференцирования (как правило, в миллисекундах) имеет тип DWORD. В процессе сброса (RESET = TRUE) выход OUT равен нулю.
Алгоритм DERIVATIVE проводит аппроксимацию по четырем точкам, что снижает ошибки при наличии шума во входном сигнале.
Блок FBD:
Пример дифференцирования треугольных импульсов:
INTEGRAL
Функциональный блок выполняет численное интегрирование.
Аналоговый вход IN типа REAL. Вход TM типа DWORD задает длительность интегрирования (как правило, в миллисекундах). Вход RESET типа BOOL запускает интегрирование при установ-
ке в TRUE. Выход OUT типа REAL.
Алгоритм вычисления использует классический двухточечный метод трапеций.
Блок FBD: пример интегрирования линейной функции:
CoDeSys V2.3 |
10-55 |
Приложение D: Библиотеки CoDeSys
LIN_TRAFO
Данный функциональный блок (util.lib) преобразует значение переменной REAL, принадлежащее одному интервалу в пропорциональное значение, принадлежащее другому интервалу. Интервалы определяются минимальным и максимальным значением. Алгоритм преобразования опирается на следующее равенство:
(IN - IN_MIN) : (IN_MAX - IN) = (OUT - OUT_MIN) : (OUT_MAX - OUT)
Входные переменные:
Переменная |
Тип |
дан- |
Описание |
|
ных |
|
|
|
|
|
|
IN |
REAL |
|
Входное значение |
|
|
|
|
IN_MIN |
REAL |
|
Нижнее значение входного диапазона |
|
|
|
|
IN_MAX |
REAL |
|
Верхнее значение входного диапазона |
|
|
|
|
OUT_MIN |
REAL |
|
Нижнее значение выходного диапазона |
|
|
|
|
OUT_MAX |
REAL |
|
Верхнее значение выходного диапазона |
|
|
|
|
Выходные переменные: |
|
|
|
|
|
|
|
Переменная |
Тип |
дан- |
Описание |
|
ных |
|
|
|
|
|
|
OUT |
REAL |
|
Выходное значение |
|
|
|
|
ERROR |
BOOL |
Признак ошибки: TRUE, если IN_MIN = |
|
|
|
|
IN_MAX или если значение IN вышло за преде- |
|
|
|
лы входного диапазона |
|
|
|
|
Пример использования:
Допустим, датчик температуры выдает некоторое напряжение в вольтах (вход IN). Нам необходимо преобразовать полученное значение в градусы по Цельсию (выход OUT). Входной диапазон (в Вольтах) определяется пределами IN_MIN=0 и IN_MAX=10. Выходной диапазон (в градусах Цельсия) определяется соответствующими пределами OUT_MIN=-20 и OUT_MAX=40.
Так, при входном значении 5 Вольт, мы получим на выходе 10 градусов по Цельсию.
STATISTICS_INT
Функциональный блок определяет минимальное, максимальное и среднее значения входной величины.
CoDeSys V2.3 |
10-56 |
