- •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
Язык последовательных функциональных схем (SFC)
SFC – это графический язык, который позволяет описать хронологическую последовательность различных действий в программе. Для этого действия связываются с шагами (этапами), а последовательность работы определяется условиями переходов между шагами.
Пример SFC диаграммы:
Шаг
SFC POU состоит из набора шагов, связанных переходами. Существуют 2 вида шагов:
∙Шаг простого типа (упрощенный SFC) может включать единственное действие. Графический флажок (небольшой треугольник в верхнем углу шага) показывает, пустой шаг или нет.
∙МЭК шаг (стандартный SFC) связан с произвольным числом действий или логических переменных. Связанные действия располагаются с правой стороны от шага.
Действие
Действие может содержать список инструкций на IL или ST, схемы на FBD или LD, или снова схемы на SFC.
При использовании простых шагов действие всегда связывается с этим шагом. Для того чтобы редактировать действие, необходимо дважды щелкнуть левой клавишей мышки на шаге. Или выде-
лить шаг и выбрать команду меню ‘Дополнения’ ‘Открыть действие/Переход’ (‘Extras‘ ‘Zoom Action/Transition’). Помимо основного действия, шаг может включать одно входное и одно выходное действие.
Действия МЭК шагов показаны в Организаторе Объектов, непосредственно под вызывающей их POU. Редактирование действия запускается двойным щелчком мыши или клавишей <Enter>. Новые действия добавляются командой главного меню ‘Проект’ ‘Добавить действие’ (‘Project’ ‘Add Action’). Вы можете сопоставить одному шагу до 9 действий.
CoDeSys V2.3 |
2-17 |
Что есть, что в CoDeSys
Входное или выходное действие
В шаг можно добавить входное и выходное действие.
Входное действие выполняется один раз при активизации шага, выходное – при деактивизации. Шаг, который имеет входное действие, обозначается буквой "Е" в левом нижнем углу, шаг с выходными действиями – буквой "Х" в правом нижнем углу.
Входные и выходные действия могут описываться на любом языке. Для того чтобы отредактировать входное или выходное действие, надо дважды щелкнуть мышкой в соответствующем углу шага.
Пример простого шага с входным и выходным действиями:
Переход/условие перехода
Между шагами находятся так называемые переходы. Условием перехода может быть логическая переменная или константа, логический адрес или логическое выражение, описанное на любом языке. Условие может включать несколько инструкций, образующих логический результат, в виде ST выражения (т.е. (i<= 100) AND b) либо на любом другом языке. Но условие не должно содержать присваивания, вызов программ и экземпляров функциональных блоков!
В редакторе SFC условие перехода можно записать непосредственно около символа перехода либо в отдельном окне редактора для ввода условия (См. раздел 0, ’Дополнения’ ‘Открыть действие/Переход’ (‘Extras‘ ‘Zoom Action/Transition’)). Условие, заданное в окне редактора предпочтительнее!
Замечание: помимо условий переходов, можно использовать тактируемый режим переходов; См. SFCtip и SFCtipmode.
Активный шаг
После вызова SFC POU начальный шаг (шаг, выделенный двойной рамкой) выполняется первым. Шаг, выполняемый в данный момент, называется активным. Действия, связанные с активным шагом, выполняются один раз в каждом управляющем цикле. В режиме онлайн активные шаги выделяются синим цветом. Следующий за активным шагом шаг станет активным, только когда условие перехода к этому шагу примет значение TRUE.
В каждом управляющем цикле будут выполнены действия, содержащиеся в активных шагах. Далее проверяются условия перехода, и, возможно, уже другие шаги становятся активными, но выполняться они будут уже в следующем цикле.
Замечание: выходное действие выполняется однократно в следующем цикле, после того, как условие перехода станет истинным.
Шаг МЭК
В отличие от упрощенного SFC МЭК шаги могут включать несколько действий (до девяти). Действия МЭК шагов описываются отдельно от них и могут неоднократно использоваться в пределах данного POU, для чего их надо связать с шагом с помощью команды главного меню ‘Дополнения’
‘Связать действие’ (‘Extras’ ‘Associate action’).
Кроме действий, с шагом можно связывать логические переменные.
С помощью так называемых классификаторов, действия и логические переменные могут активироваться и деактивироваться, возможно, с задержкой времени. Например: действие может продол-
CoDeSys V2.3 |
2-18 |
Что есть, что в CoDeSys
жать работу, даже если запустивший его шаг утратил активность; с помощью классификатора S (установка) можно программировать параллельные процессы и т.д.
Логическая переменная <StepName>.x, связанная с шагом, получает значение ИСТИНА при каждой активации шага (См. ниже Неявные переменные).
Действие, связанное с МЭК шагом, описывается справа от него в блоке, состоящем из двух частот. Левая часть этого блока содержит классификатор, возможно, с константой времени, а правая часть содержит имя действия или логической переменной.
Пример МЭК шага с двумя действиями:
В режиме онлайн все активные действия выделяются синим цветом, подобно активным шагам. Благодаря чему легко проследить ход выполнения процесса после каждого управляющего цикла.
Замечание: Если действие деактивируется, то оно выполняется еще один раз. Это означает, что каждое действие выполняется хотя бы два раза (см. далее действие со спецификаторами).
При выполнении шага сначала производится деактивация действий, затем выполняются активные действия в алфавитном порядке.
Для того чтобы использовать шаги с МЭК действиями, необходимо установить опцию "Extras" "Use IEC-Steps" и подключить к проекту специальную библиотеку Iecsfc.lib.
В Организаторе объектов действия показаны непосредственно под SFC POUs, которые их вызывают. Новые действия можно создавать с помощью команды ‘Проект’ ‘Добавить действие’
("Project" "Add Action").
SFC POU со списком действий в Организаторе Объектов:
Классификаторы действий
Для связи шагов и действий применяются классификаторы:
N |
Не сохраняемое |
Действие активно в течение активности шага |
R |
Внеочередной Сброс |
Деактивация действия |
S |
Установка |
Действие активно вплоть до сброса |
L |
Ограниченное по времени |
Действие активно в течение указанного времени, но не |
|
|
дольше времени активности шага |
D |
Отложенное |
Действие активируется по прошествии указанного време- |
|
|
ни, если шаг еще активен и продолжает быть активным |
P |
Импульс |
Действие выполняется один раз, если шаг активен |
SD |
Сохраняемое и отложенное |
Действие активно после указанного времени до сброса |
DS |
Отложенное и сохраняемое |
Действие активно после указанного времени, если шаг |
CoDeSys V2.3 |
2-19 |
Что есть, что в CoDeSys
|
еще активен, вплоть до сброса |
SL Сохраняемое и ограничен- |
Активно после указанного времени. |
ное по времени |
|
Классификаторы L, D, SD, DS, SL требуют указания временной константы (например “L T#5s”) или переменной типа в формате TIME (например “L t_var”).
Замечание: В процессе деактивации действие выполняется еще один раз. Это относится и к действиям с классификатором P!
Неявные переменные в SFC
В SFC существуют неявно объявленные переменные, которые могут быть полезны для определения состояния шагов, действий и контроля времени активности шагов. Все они устанавливаются в начале каждого рабочего цикла. Для МЭК шагов данные переменные поддерживаются библиотекой iecsfc.lib
(структуры SFCStepType и SFCActionType), автоматически включаемой в проект. Для упрощенного SFC неявные переменные реализованы непосредственно в CoDeSys.
Логические переменные активности шагов:
Ÿ Для МЭК шагов определены две переменные: <StepName>.x и <StepName>._x. Переменная <StepName>.x содержит признак активности шага в текущем цикле. Переменная <StepName>._x содержит признак активности шага в следующем цикле. Если <StepName>.x=TRUE, то шаг будет выполняться в текущем цикле. Если <StepName>._x=TRUE и <StepName>.x=FALSE, то шаг будет выполняться в следующем цикле. Соответственно значение <StepName>._x будет скопировано в
<StepName>.x в начале цикла.
ŸДля простых шагов определены аналогичные по смыслу переменные с именами <StepName> и _<StepName>. Этот флаг имеет значение ИСТИНА, когда соответствующий шаг активен, и ЛОЖЬ, когда неактивен.
ŸДля МЭК действий переменная: <ActionName>.x приобретает значение ИСТИНА, как только действие становится активным. (Не используйте переменную <ActionName>._x - она служит для внутренних целей).
Переменные контроля времени активности шагов (TIME):
С помощью следующих неявных переменных можно узнать время, истекшее с момента получения шагом активности. Для их использования необходимо задать минимальное время активности в конфигурации шага.
ŸДля МЭК шагов определена переменная <StepName>.t (<StepName>.t служит для внутренних целей).
ŸДля простых шагов соответствующая переменная называется _time<stepname>. Ее необходимо явно объявить, например "_timeStep1: TIME;"
ŸДля МЭК действий неявные переменные контроля времени активности недоступны.
Неявные переменные доступны в любом действии или переходе SFC. Кроме того, к ним разрешен доступ даже из другой программы. Например: boolvar1:=sfc1.step1.x; Где step1.x - неявная логическая переменная, представляющая состояние МЭК шага step1 в POU sfc1.
Флаги SFC
Для управления работой SFC компонента предусмотрены специальные флаги. Для использования флагов необходимо объявлять их внутри POU. Для доступа извне сделайте их глобальными либо входными или выходными.
CoDeSys V2.3 |
2-20 |
Что есть, что в CoDeSys
Пример: Если в SFC POU некоторый шаг активен дольше, чем время, заданное в его атрибутах (см. ниже), устанавливается специальный флаг, доступный через переменную "SFCError" (SFCError принимает значение TRUE в этом случае).
Вы можете использовать следующие переменные-флаги:
SFCEnableLimit: Переменная типа BOOL. При значении этой переменной ИСТИНА, задержка времени шагов регистрируется в SFCError. Иначе задержки времени игнорируются.
SFCInit: Переменная типа BOOL. Когда переменная получает значение ИСТИНА, программа переходит на шаг Init и все SFC флаги сбрасываются. Шаг Init становится активным, но не выполняется, пока переменная имеет значение ИСТИНА. Как только SFCInit примет значение ЛОЖЬ, выполнение программы продолжится.
SFCReset: Переменная типа BOOL. Работает подобно SFCInit. Но приостановка выполнения происходит после шага инициализации Init. Поэтому флаг SFCReset можно сбросить в самом шаге Init.
Внимание: начиная с версии компилятора 2.3.7.0, флаг SFCReset сбрасывает также логические действия, ассоциированные с МЭК шагами, чего не было ранее.
SFCQuitError: Переменная типа BOOL. Выполнение программы SFC приостанавливается, пока переменная имеет значение ИСТИНА. После возвратаа ее значения в ЛОЖЬ, сбрасывается признак ошибки SFCError и работа возобновляется.
SFCPause: Переменная типа BOOL. Выполнение программы SFC приостанавливается, пока эта переменная имеет значение ИСТИНА.
SFCError: Эта логическая переменная принимает значение ИСТИНА, когда происходит задержка времени в некотором шаге. Если следом возникнет вторая ошибка, она не будет зафиксирована, если флаг SFCError не был предварительно сброшен. Для уточнения причины ошибки необходимо использовать флаги: SFCErrorStep, SFCErrorPOU, SFCQuitError, SFCErrorAnalyzation.
SFCTrans: Переменная типа BOOL. Принимает значение ИСТИНА, когда переход активируется.
SFCErrorStep: Переменная типа STRING. В этой переменной хранится имя шага, в котором обнаружена ошибка (задержка времени).
SFCErrorPOU: Переменная типа STRING. В этой переменной хранится имя компонента, в котором обнаружена ошибка (задержка времени).
SFCCurrentStep: Переменная типа STRING. В этой переменной хранится имя активного шага. В случае одновременного выполнения шагов в переменной сохраняется имя того шага, который находится в правой ветви SFC диаграммы.
SFCErrorAnalyzationTable: Переменная типа ARRAY [0..n] OF ExpressionResult сообщает ре-
зультаты анализа условного выpажения перехода. Для каждого элемента выражения, формирующего значение FALSE и соответственно задерживающего переход, заполняется структура, содержащая наименование, адрес, комментарий и текущее значение.
Допускается максимум до 16 элементов (переменных), поэтому индексы массива имеют значения от 0 до 15.
Структура ExpressionResult и неявно используемые функции анализа включены в библиотеку AnalyzationNew.lib. Модули библиотеки можно использовать явно в других POU, не запрограммированных в SFC.
Предварительным условием анализа является обнаружение задержки в шаге. Поэтому контроль времени выполнения обязателен при анализе. Также обязательно должна быть объявлена перемен-
ная SFCError (см. выше).
CoDeSys V2.3 |
2-21 |
