- •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
Аналоговый вход IN типа INT. По входу RESET типа BOOL все переменные инициализируются заново. Выход MN дает минимальное, выход MX максимальное и выход AVG среднее значения входных данных IN. Все три выхода типа INT.
Блок FBD:
STATISTICS_REAL
Функциональный блок, аналогичный STATISTICS_INT. Вход IN и выходы MN, MX, AVG имеют тип REAL.
VARIANCE
Функциональный блок вычисляет дисперсию входных данных.
Вход IN типа REAL, вход RESET типа BOOL и выход OUT типа REAL. Сброс вычисления производится по входу RESET=TRUE.
Среднеквадратичное отклонение может быть получено как квадратный корень VARIANCE.
Регуляторы
PD
Функциональный блок реализует ПД закон регулирования:
Y Y _ OFFSET KPçe(t)
= + æ
è
+ TV |
de(t) ö |
||
|
÷ |
||
dt |
|||
|
ø |
||
где Y_OFFSET – стационарное значение, KP – коэффициент передачи, TV – постоянная диффе-
ренцирования, e(t) - сигнал ошибки (SET_POINT-ACTUAL).
Входы функционального блока:
Наименование |
Тип |
Описание |
|
|
|
ACTUAL |
REAL |
Текущее значение контролируемой переменной. |
|
|
|
SET_POINT |
REAL |
Задание. |
|
|
|
KP |
REAL |
Коэффициент передачи. |
|
|
|
TV |
REAL |
Постоянная дифференцирования, в секундах |
|
|
(т.е. "0.5" для 500 мс). |
|
|
|
Y_MANUAL |
REAL |
Определяет значение выхода Y, если MANUAL = TRUE. |
|
|
|
Y_OFFSET |
REAL |
Стационарное значение Y. |
|
|
|
Y_MIN, |
REAL |
Значение выхода Y ограничено Y_MIN и Y_MAX. При |
Y_MAX |
|
достижении Y границ ограничения, выход LIMITS_ACTVE, |
|
|
(BOOL) принимает значение TRUE. Ограничение работает |
|
|
только при Y_MIN < Y_MAX. |
|
|
|
MANUAL |
BOOL |
Значение TRUE, включает режим ручного регулирования по |
|
|
входу Y_MANUAL. |
|
|
|
CoDeSys V2.3 |
10-57 |
|
|
|
Приложение D: Библиотеки CoDeSys |
||
|
RESET |
|
BOOL |
|
TRUE сбрасывает регулятор; в это время Y = Y_OFFSET |
|
|
|
|||
|
|
|
|
|
|
|
Входы функционального блока: |
|
|
||
|
|
|
|
|
|
|
Наименование |
|
Тип |
|
Описание |
|
|
|
|
|
|
|
Y |
|
REAL |
|
Выход регулятора |
|
|
|
|
|
|
|
LIMITS_ACTIVE |
|
BOOL |
|
TRUE означает что Y ограничивается пределами (Y_MIN, |
|
|
|
|
|
Y_MAX). |
|
|
|
|
|
|
Y_OFFSET, Y_MIN и Y_MAX используются при необходимости ограничения допустимого диапазона значений выхода. Если ограничение выхода не требуется, Y_MIN и Y_MAX должны быть равны 0.
P-регулятор получается из PD установкой TV в 0.
Пример FBD:
PID
Функциональный блок реализует ПИД закон регулирования:
æ |
|
TN |
|
ö |
|
ç |
1 |
òe(t) + TV |
de(t) ÷ |
||
Y = Y _ OFFSET + KPçe(t) + |
|
|
÷ |
||
TN |
dt |
||||
è |
0 |
ø |
|||
где Y_OFFSET – стационарное значение, KP – коэффициент передачи, TN – постоянная интегрирования, TV – постоянная дифференцирования, e(t) - сигнал ошибки (SET_POINT-ACTUAL).
Входы функционального блока:
Наименование |
Тип |
Описание |
|
|
|
ACTUAL |
REAL |
Текущее значение контролируемой переменной. |
|
|
|
SET_POINT |
REAL |
Задание. |
|
|
|
KP |
REAL |
Коэффициент передачи. |
|
|
|
TN |
REAL |
Постоянная интегрирования, в секундах |
|
|
(т.е. "0.5" для 500 мс). |
|
|
|
TV |
REAL |
Постоянная дифференцирования, в секундах |
|
|
(т.е. "0.5" для 500 мс). |
|
|
|
Y_MANUAL |
REAL |
Определяет значение выхода Y, если MANUAL = TRUE. |
|
|
|
Y_OFFSET |
REAL |
Стационарное значение Y. |
|
|
|
Y_MIN, |
REAL |
Значение выхода Y ограничено Y_MIN и Y_MAX. При |
Y_MAX |
|
достижении Y границ ограничения, выход LIMITS_ACTVE, |
CoDeSys V2.3 |
10-58 |
|
|
|
Приложение D: Библиотеки CoDeSys |
||
|
Y_MAX |
|
|
|
(BOOL) принимает значение TRUE. Ограничение работает |
|
|
|
|||
|
|
|
|
|
только при Y_MIN < Y_MAX. |
|
|
|
|
|
|
|
MANUAL |
|
BOOL |
|
Значение TRUE, включает режим ручного регулирования по |
|
|
|
|
|
входу Y_MANUAL. |
|
|
|
|
|
|
|
RESET |
|
BOOL |
|
TRUE сбрасывает регулятор; в это время Y = Y_OFFSET |
|
|
|
|
|
|
|
Входы функционального блока: |
|
|
||
|
|
|
|
|
|
|
Наименование |
|
Тип |
|
Описание |
|
|
|
|
|
|
|
Y |
|
REAL |
|
Выход регулятора |
|
|
|
|
|
|
|
LIMITS_ACTIVE |
|
BOOL |
|
TRUE означает что Y ограничивается пределами (Y_MIN, |
|
|
|
|
|
Y_MAX). |
|
OVERFLOW |
|
BOOL |
|
TRUE – признак переполнения. |
|
|
|
|
|
|
Механизм ограничения выхода PID аналогичен PD регулятору.
Неправильная настройка регулятора может вызвать неограниченный рост интегральной составляющей. Для обнаружения такой ситуации предназначен выход OVERFLOW. При переполнении он принимает значение TRUE, одновременно останавливается работа регулятора. Для его включения необходимо использовать рестарт.
Пример FBD:
PID_FIXCYCLE
Функциональный блок PID_FIXCYCLE.
Отличается от PID тем, что время цикла не измеряется автоматически встроенным таймером, а задается дополнительной переменной CYCLE, в секундах.
CoDeSys V2.3 |
10-59 |
Приложение D: Библиотеки CoDeSys
Генераторы сигналов
BLINK
Функциональный блок ‘генератор прямоугольных импульсов’
Входы: ENABLE типа BOOL, TIMELOW и TIMEHIGH типа TIME. Выход OUT типа BOOL.
Генератор запускается по входу ENABLE = TRUE. Длительность импульса задается TIMEHIGH, длительность паузы TIMELOW.
При переходе ENABLE в FALSE, выход OUT остается в том состоянии, в котором он был в этот момент. Если вам необходимо чтобы выходная переменная сбрасывалась в FALSE при ENABLE равном FALSE, то используйте выражение "OUT AND ENABLE" на выходе (т.е. добавьте блок AND на выход и на второй вход подайте ENABLE).
Пример CFC:
FREQ_MEASURE
Данный функциональный блок измеряет (усредненную) частоту (в Герцах) входного сигнала типа BOOL. Вы можете задать количество периодов для усреднения. Под периодом понимается время между двумя передними фронтами сигнала.
Входные переменные:
Переменная |
Тип данных |
Описание |
|
|
|
IN |
BOOL |
Входной сигнал |
|
|
|
PERIODS |
INT |
Число периодов усреднения. Допустимое значение от 1 |
|
|
до 10. |
|
|
|
RESET |
BOOL |
Сброс |
|
|
|
Выходные переменные: |
|
|
|
|
|
Переменная |
Тип данных |
Описание |
|
|
|
OUT |
REAL |
Результат, частота в Герцах |
|
|
|
CoDeSys V2.3 |
10-60 |
|
|
|
Приложение D: Библиотеки CoDeSys |
|||
|
VALID |
|
BOOL |
|
FALSE до окончания первого замера, либо период > |
|
|
|
|
|
|||
|
|
|
|
|
3*OUT (признак ошибки по входам) |
|
|
|
|
|
|
|
|
GEN
Функциональный блок ‘функциональный генератор’
Входы: перечисление MODE предопределенного типа GEN_MODE, BASE типа BOOL, PERIOD
типа TIME, CYCLES и AMPLITUDE типа INT и RESET типа BOOL. Выход OUT типа INT.
Вход MODE задает вид генерируемой функции. Перечисление включает следующие значения: TRIANGLE и TRIANGLE_POS - треугольники, SAWTOOTH_RISE и SAWTOOTH_FALL – пила, RECTANGLE – прямоугольники, SINE и COSINE – синусоиды:
TRIANGLE: TRIANGLE_POS:
SAWTOOTH_RISE: SAWTOOTH_FALL:
RECTANGLE: SINUS:
COSINUS:
BASE определяет представление единиц периода по времени (BASE=TRUE) или по числу циклов, т.е. по количеству вызовов функционального блока (BASE=FALSE).
Входы PERIOD или CYCLES определяют период выходного сигнала. Вход AMPLITUDE задает амплитуду сигнала.
Сброс генератора происходит при установке RESET=TRUE.
Пример FBD:
CoDeSys V2.3 |
10-61 |
