WAGO WAGO-I/O-PRO, Programming Tool IEC-61131-3 Руководство пользователя

  • Здравствуйте! Я — чат-бот, прочитавший руководство пользователя по программированию ПЛК в CoDeSys V2.3. Я готов ответить на ваши вопросы о создании проектов, использовании разных языков программирования (IL, ST, FBD, SFC, LD, CFC), отладке, работе с ресурсами и другими аспектами работы с этой системой. Спрашивайте!
  • Что такое CoDeSys?
    Какие языки программирования поддерживает CoDeSys 2.3?
    Как выполнить отладку проекта в CoDeSys?
    Как настроить конфигурацию ПЛК в CoDeSys?
Руководство пользователя
по программированию ПЛК
в
CoDeSys 2.3
CoDeSys V2.3 1-2
Copyright 1994, 1997, 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
3S - Smart Software Solutions GmbH All rights reserved.
Copyright 2003, 2004, 2005, 2006, 2007, 2008 ПК Пролог (Русская редакция)
Текст данного документа тщательно проверен. Однако практически невозможно гарантировать абсолютное
отсутствие ошибок. Мы будем благодарны вам за замечания и предложения по улучшению текста и содер-
жимого документа.
Trademark
Intel is a registered trademark and 80286, 80386, 80486, Pentium are trademarks of Intel Corporation.
Microsoft, MS and MS-DOS are registered trademarks, Windows is a trademark of Microsoft Corporation.
Документ подготовлен:
3S - Smart Software Solutions GmbH
Memminger Straße 151
D-87439 Kempten
Тел.: +49 831 5 40 31 - 0
Факс: +49 831 5 40 31 50
www.3s-software.com
Русская редакция:
ПК Пролог
21400, Россия, г. Смоленск, ул. Октябрьской революции, 9
Тел.: +7 4812 38-29-31
Тел./Факс: +7 4812 65-81-71
www.prolog-plc.ru
Текст данного документа предназначен для использования CoDeSys V2.3 с русским и английским интерфей-
сом. Наименования команд для английской версии указаны в скобках.
Последнее обновление 10.09.2008
Редакция RU 2.8, для CoDeSys V2.3.9.x
CoDeSys V2.3 1-3
Оглавление
1 КРАТКОЕ ПРЕДСТАВЛЕНИЕ CODESYS...........................................................................................1-1
1.1 Что такое CoDeSys.......................................................................................................................................................1-1
1.2 Представление о работе в CoDeSys....................................................................................................................1-1
1.3 Состав базовой пользовательской документации по CoDeSys.............................................................1-3
2 ЧТО ЕСТЬ ЧТО В CODESYS..............................................................................................................2-1
2.1 Компоненты проекта...................................................................................................................................................2-1
2.2 Языки программирования.......................................................................................................................................2-8
Список инструкций (IL).....................................................................................................................................................2-9
Модификаторы и операторы IL.....................................................................................................................................2-9
Структурированный текст (ST)....................................................................................................................................2-10
Язык последовательных функциональных схем (SFC)......................................................................................2-17
Язык функциональных блоковых диаграмм (FBD)...............................................................................................2-22
Непрерывные функциональные схемы (CFC).......................................................................................................2-23
Язык релейных диаграмм (LD)....................................................................................................................................2-23
2.3 Отладка и онлайн функции....................................................................................................................................2-25
3 ПИШЕМ ПРОСТОЙ ПРИМЕР..............................................................................................................3-1
3.1 Блок управления светофором...............................................................................................................................3-1
3.2 Визуализация примера............................................................................................................................................3-11
4 РАБОТА В СИСТЕМЕ ПРОГРАММИРОВАНИЯ CODESYS..............................................................4-1
4.1 Главное окно ..................................................................................................................................................................4-1
4.2 Опции проекта ...............................................................................................................................................................4-3
4.3 Управление проектом...............................................................................................................................................4-19
4.4 Управление объектами проекта ..........................................................................................................................4-50
4.5 Основные функции редактирования................................................................................................................4-57
4.6 Основные функции Онлайн..................................................................................................................................4-64
4.7 Работа с окнами..........................................................................................................................................................4-80
4.8 Помощь...........................................................................................................................................................................4-80
5 РЕДАКТОРЫ CODESYS.....................................................................................................................5-1
5.1 Общие элементы редакторов.................................................................................................................................5-1
5.2 Редактор раздела объявлений..............................................................................................................................5-3
Работа в редакторе объявлений..................................................................................................................................5-3
Редактор раздела объявлений в режиме Онлайн ...............................................................................................5-11
CoDeSys V2.3 1-4
Директивы компилятора................................................................................................................................................5-11
5.3 Текстовые редакторы..............................................................................................................................................5-20
Работа в текстовых редакторах .................................................................................................................................5-20
Редактор языка IL............................................................................................................................................................5-24
Редактор языка ST..........................................................................................................................................................5-24
5.4 Графические редакторы.........................................................................................................................................5-25
Работа в графических редакторах ............................................................................................................................5-25
Редактор FBD...................................................................................................................................................................5-30
Редактор LD......................................................................................................................................................................5-36
Редактор SFC...................................................................................................................................................................5-43
Редактор CFC...................................................................................................................................................................5-52
6 РЕСУРСЫ............................................................................................................................................6-1
6.1 Обзор ресурсов.............................................................................................................................................................6-1
6.2 Глобальные и конфигурационные переменные, файл комментариев...............................................6-2
Глобальные переменные................................................................................................................................................6-3
Конфигурационные переменные ................................................................................................................................6-7
Файл комментариев переменных ................................................................................................................................6-8
6.3 Конфигурация тревог (Alarm Configuration).....................................................................................................6-9
Обзор.....................................................................................................................................................................................6-9
Общая информация и терминология .......................................................................................................................6-10
Классы тревог...................................................................................................................................................................6-11
Группы тревог...................................................................................................................................................................6-15
Запись тревог....................................................................................................................................................................6-16
'Дополнения' (Extras): 'Настройки' (Settings)...........................................................................................................6-18
6.4 Менеджер библиотек (Library Manager)............................................................................................................6-18
6.5 Бортжурнал (Log).......................................................................................................................................................6-20
6.6 Конфигуратор ПЛК (PLC Configuration)............................................................................................................6-23
Обзор...................................................................................................................................................................................6-23
Работа в редакторе конфигуратора ПЛК.................................................................................................................6-25
Общие параметры конфигурации ПЛК.....................................................................................................................6-26
Диалог специфической настройки параметров.....................................................................................................6-27
Конфигурация модулей ввода/вывода.....................................................................................................................6-28
Конфигурация канала ....................................................................................................................................................6-31
Конфигурирование модулей Profibus .......................................................................................................................6-32
Конфигурирование CANopen-модулей ....................................................................................................................6-39
Конфигурирование ведомого CANopen-устройства (CANopen Slave)...........................................................6-45
Конфигурирование модулей DeviceNet....................................................................................................................6-49
Конфигурация ПЛК в режиме Онлайн ......................................................................................................................6-54
Сканирование аппаратуры/ Состояние/ Диагностика ПЛК................................................................................6-54
6.7 Конфигуратор задач (Task Configuration)........................................................................................................6-56
Обзор...................................................................................................................................................................................6-56
Работа в конфигураторе задач...................................................................................................................................6-57
Системные события .......................................................................................................................................................6-59
Конфигуратор задач в режиме онлайн ....................................................................................................................6-60
6.8 Менеджер просмотра (Watch and Recipe Manager).....................................................................................6-62
Обзор...................................................................................................................................................................................6-62
Менеджер просмотра в режиме оффлайн..............................................................................................................6-62
Менеджер просмотра в режиме Онлайн .................................................................................................................6-64
6.9 Цифровая трассировка (Sampling Trace)........................................................................................................6-65
CoDeSys V2.3 1-5
Обзор...................................................................................................................................................................................6-65
Конфигурация трассировки..........................................................................................................................................6-66
Управление процессом трассировки ........................................................................................................................6-67
Отображение данных.....................................................................................................................................................6-68
ДополненияЗапись значений трассировки ('Extras' 'Save trace values')...................................................6-70
ДополненияВнешняя конфигурация трассировки ('Extras' 'External Trace Configurations')................6-70
6.10 Рабочая область (Workspace)............................................................................................................................6-71
6.11 Менеджер параметров (Parameter Manager)................................................................................................6-71
Обзор и подключение ....................................................................................................................................................6-71
Редактор менеджера параметров. Обзор...............................................................................................................6-73
Типы списков параметров и их атрибуты................................................................................................................6-74
Управление списками параметров............................................................................................................................6-76
Редактирование списка параметров.........................................................................................................................6-78
Менеджер параметров в режиме онлайн................................................................................................................6-79
Экспорт/импорт списков параметров ......................................................................................................................6-80
6.12 Настройки целевой платформы (Target Settings).....................................................................................6-80
6.13 ПЛК-Браузер (PLC-Browser).................................................................................................................................6-82
Общие сведения..............................................................................................................................................................6-82
Набор команд ПЛК-Браузера ......................................................................................................................................6-82
Макрорасширения команд ПЛК-Браузера...............................................................................................................6-84
Вспомогательные команды ПЛК-Браузера.............................................................................................................6-85
6.14 Инструменты (Tools)...............................................................................................................................................6-86
Свойства доступных инструментов (Object Properties).......................................................................................6-86
Настройка команд инструментов ...............................................................................................................................6-89
Часто задаваемые вопросы по инструментам......................................................................................................6-90
7 ENI........................................................................................................................................................7-1
7.1 Что такое ENI?................................................................................................................................................................7-1
7.2 Условия работы с ENI базой данных в проекте.............................................................................................7-1
7.3 Работа с ENI базой данных в проекте CoDeSys.............................................................................................7-2
7.4 Категории объектов в базе данных проекта ...................................................................................................7-2
8 DDE ИНТЕРФЕЙС ...............................................................................................................................8-1
8.1 DDE интерфейс CoDeSys..........................................................................................................................................8-1
8.2 DDE обмен посредством GatewayDDE Server.................................................................................................8-2
9 МЕНЕДЖЕР ЛИЦЕНЗИРОВАНИЯ CODESYS....................................................................................9-1
9.1 Обзор.................................................................................................................................................................................9-1
9.2 Создание лицензированных библиотек в CoDeSys.....................................................................................9-1
10 ПРИЛОЖЕНИЯ...............................................................................................................................10-1
ПРИЛОЖЕНИЕ A: ОПЕРАТОРЫ И ФУНКЦИИ МЭК...............................................................................10-1
10.1 Арифметические операторы..............................................................................................................................10-1
CoDeSys V2.3 1-6
10.2 Битовые операторы ...............................................................................................................................................10-4
10.3 Операторы сдвига...................................................................................................................................................10-6
10.4 Операторы выборки...............................................................................................................................................10-8
10.5 Операторы сравнения.........................................................................................................................................10-10
10.6 Адресные операторы...........................................................................................................................................10-13
10.7 Вспомогательные функции ..............................................................................................................................10-14
10.8 Оператор вызова...................................................................................................................................................10-15
10.9 Явное преобразование типов..........................................................................................................................10-15
10.10 Математические функции................................................................................................................................10-22
ПРИЛОЖЕНИЕ В: ОПЕРАНДЫ В CODESYS.......................................................................................10-27
Константы...........................................................................................................................................................................10-27
Переменные.......................................................................................................................................................................10-29
Адреса..................................................................................................................................................................................10-31
Функции в роли операндов........................................................................................................................................10-32
ПРИЛОЖЕНИЕ С: ТИПЫ ДАННЫХ CODESYS....................................................................................10-33
Элементарные типы данных .....................................................................................................................................10-33
Пользовательские типы данных.............................................................................................................................10-34
ПРИЛОЖЕНИЕ D: БИБЛИОТЕКИ CODESYS.......................................................................................10-42
Стандартная библиотека Standard.lib....................................................................................................................10-42
Строковые функции ......................................................................................................................................................10-42
Переключатели ..............................................................................................................................................................10-45
Детекторы импульсов ..................................................................................................................................................10-47
Счетчики...........................................................................................................................................................................10-49
Таймеры ...........................................................................................................................................................................10-51
Библиотека UTIL.LIB ......................................................................................................................................................10-53
BCD преобразования ...................................................................................................................................................10-53
Бит/байт функции ..........................................................................................................................................................10-54
Дополнительные математические функции .........................................................................................................10-55
Регуляторы ......................................................................................................................................................................10-57
Генераторы сигналов...................................................................................................................................................10-60
Преобразования аналоговых сигналов..................................................................................................................10-62
Аналоговые компараторы...........................................................................................................................................10-63
Библиотека AnalyzationNew.lib .................................................................................................................................10-64
Системные библиотеки CoDeSys............................................................................................................................10-65
ПРИЛОЖЕНИЕ E: КРАТКИЙ СПРАВОЧНИК ПО ОПЕРАТОРАМ И КОМПОНЕНТАМ БИБЛИОТЕК 10-66
Операторы CoDeSys:.....................................................................................................................................................10-66
CoDeSys V2.3 1-7
Компоненты Standard.lib: ............................................................................................................................................10-68
Компоненты Util.lib:........................................................................................................................................................10-68
ПРИЛОЖЕНИЕ F: КОМАНДНАЯ СТРОКА / КОМАНДНЫЙ ФАЙЛ ......................................................10-70
Командная строка...........................................................................................................................................................10-70
Командный файл (cmdfile)..........................................................................................................................................10-71
ПРИЛОЖЕНИЕ G: СИМЕНС ИМПОРТ..................................................................................................10-79
Импорт из символьных файлов SEQ....................................................................................................................10-79
Импорт из файла проекта S5.....................................................................................................................................10-80
Конвертирование языка S5 в МЭК C 61131-3......................................................................................................10-80
ПРИЛОЖЕНИЕ H: ОПЦИИ ЦЕЛЕВЫХ СИСТЕМ ..................................................................................10-84
Системные опции целевых платформ (Target Platform)...............................................................................10-84
Intel 386 совместимые..................................................................................................................................................10-84
Motorola 68K....................................................................................................................................................................10-85
Infineon C16x...................................................................................................................................................................10-86
ARM и Power PC............................................................................................................................................................10-87
MIPS...................................................................................................................................................................................10-88
'Hitachi SH'........................................................................................................................................................................10-89
8051 совместимые ........................................................................................................................................................10-90
Infineon 'TriCore’.............................................................................................................................................................10-90
Опции распределения памяти (Memory Layout)................................................................................................10-91
Опции общей категории (General)............................................................................................................................10-92
Опции категории Сетевая функциональность ..................................................................................................10-94
Опции категории Визуализация...............................................................................................................................10-95
ПРИЛОЖЕНИЕ I: ИСПОЛЬЗОВАНИЕ КЛАВИАТУРЫ .........................................................................10-98
ПРИЛОЖЕНИЕ J: РЕКОМЕНДАЦИИ ПО НАИМЕНОВАНИЮ ............................................................10-101
Наименование идентификаторов..........................................................................................................................10-101
Идентификаторы переменных................................................................................................................................10-101
Идентификаторы пользовательских типов (DUT).........................................................................................10-103
Идентификаторы функций, функциональных блоков и программ (POU)..........................................10-103
Идентификаторы визуализаций.............................................................................................................................10-104
ПРИЛОЖЕНИЕ K: ОШИБКИ И ПРЕДУПРЕЖДЕНИЯ КОМПИЛЯТОРА.............................................10-105
Предупреждения............................................................................................................................................................10-106
Ошибки...............................................................................................................................................................................10-112
1 Краткое представление CoDeSys
1.1 Что такое CoDeSys
CoDeSys - это современный инструмент для программирования контроллеров (CoDeSys образуется
от слов Controllers Development System).
CoDeSys предоставляет программисту удобную среду для программирования контроллеров на язы-
ках стандарта МЭК 61131-3. Используемые редакторы и отладочные средства базируются на широ-
ко известных и хорошо себя зарекомендовавших принципах, знакомых по другим популярным сре-
дам профессионального программирования (такие, как Visual C++).
1.2 Представление о работе в CoDeSys
С чего начинается программный проект?
Прежде всего нужно дать проекту новое имя, оно же послужит и названием файла проекта.
Первый программный компонент (POU Program Organization Unit) помещается в новый проект
автоматически и получает название PLC_PRG. Именно с него и начинается выполнение процесса
(по аналогии с функцией main в языке С), из него будут вызываться другие программные блоки
(программы, функции и функциональные блоки).
Нет необходимости писать вручную текст для PLC_PRG, поскольку конфигурация задачи опреде-
ляется на вкладке проектаКонфигурация задач (Task Configuration). Подробнее это будет опи-
сано в главе, посвященной конфигурации задач.
Проект содержит ряд разнородных объектов POU, данных разных типов, элементов визуализации и
ресурсов.
Организатор объектов (Object Organizer) управляет списком всех объектов Вашего проекта.
Как создать собственный проект?
Для начала вы определяете конфигурацию ПЛК в соответствии с аппаратными средствами своего
контроллера.
Затем вы создаете программные компоненты, необходимые для решения проблемы.
Далее вы пишете программный код для созданных компонентов на выбранных языках.
Сразу после завершения программирования, вы компилируете проект и исправляете ошибки, если
они есть.
Как проверить проект?
Когда все ошибки устранены, можно приступить к отладке.
Включите флажокРежим эмуляции (simulation) и «подключитесь» к контроллеру. Теперь вы в
режиме онлайн.
Откройте окноКонфигурация ПЛК (PLC Configuration) и проверьте правильность выполнения
проекта. Для этого измените вручную входные данные и убедитесь, что выходы контроллера отреа-
гировали нужным образом. Если необходимо, вы можете наблюдать значения переменных в про-
граммных компонентах. Используя менеджер просмотра и заказа значений переменных (короче,
Краткое представление CoDeSys
CoDeSys V2.3 1-2
Менеджер просмотра Watch and Recipe Manager’), вы сможете задать список переменных,
значения которых необходимо наблюдать.
Отладка
В случае ошибок в работе кода вы можете задать точки останова. Когда процесс остановлен в опре-
деленной точке, вы можете просмотреть значения переменных проекта в данный момент времени.
Выполняя проект в пошаговом режиме (single step), вы можете проверить логическую корректность
своих программ.
Дополнительные возможности режима онлайн
В процессе отладки вы можете устанавливать значения переменных программ, задавать фиксиро-
ванные значения на входы и выходы контроллера, контролировать последовательность исполнения
процесса и определить место в программе, которое сейчас выполняется. Используя функцию
Цифровая трассировка (Sampling Trace), можно отслеживать в графическом представлении из-
менения значений переменных за определенный промежуток времени.
Когда проект закончен и отлажен, переходите к окончательной доводке в рабочих условиях на ре-
альном "железе". Естественно, при этом полностью доступны все отладочные функции.
Дополнительные возможности CoDeSys
Весь проект может быть экспортирован в текстовый файл и сохранен в печатном виде.
Средства коммуникации CoDeSys включают символьный и DDE интерфейсы. Коммуникацион-
ный сервер, OPC и DDE серверы входят в стандартный пакет поставки.
Путем выбора целевой платформы CoDeSys позволяет использовать один проект в различных сис-
темах.
Сетевые переменные общего доступа и Менеджер параметров (Parameter manager) обеспечи-
вают средства сетевого взаимодействия контроллеров.
ENI: инжиниринговый интерфейс применяется совместно с любыми системами управления вер-
сиями через автономный ENI сервер. Программные компоненты CoDeSys сохраняются в единой ба-
зе данных, доступной другим пользователям. ENI сервер служит хранилищем конструкторских
данных не только для CoDeSys, но и для сторонних программных инструментов.
CoDeSys позволяет задействовать «фирменные» программные инструменты. Файлы, включающие
исполняемый код, могут быть скомпонованы с кодом проекта и загружены в контроллер.
Созданная в CoDeSys визуализация может выполняться не только в среде программирования, но и в
целевой платформе или в Web. Это позволяет контролировать процесс и управлять им через Ин-
тернет.
Краткое представление CoDeSys
CoDeSys V2.3 1-3
1.3 Состав базовой пользовательской документации по CoDeSys
Модуль Документы Файлы
Среда программирова-
ния CoDeSys
Печатное руководство и встроенная система
помощи
Первые шаги с CoDeSys (пример)
CoDeSys_V23_RU.pdf
First Steps with CoDeSys RU.pdf
Gateway Server
Концепции, установка, встроенная система
помощи, интерфейс и настройка (открывается
двойным щелчком мыши на иконке в панели
задач)
Gateway Manual.pdf
OPC Server OPC-Server V2.0, установка и применение OPC_20_How_to_use.pdf
CoDeSys Визуализация
Описание CoDeSys визуализации, включая
CoDeSys HMI, целевую (Target-) и Web-
визуализацию
CoDeSys_Visu_V23_RU.pdf
SoftMotion Описание применения и библиотек SoftMotion SoftMotion_Manual_V23.pdf
Библиотеки
Standard.lib и Util.lib описаны в печатном ру-
ководстве по программированию.
Для каждой системной библиотеки CoDeSys
существует отдельный документ <library
name>.pdf
SoftMotion библиотеки: см. SoftMotion-
документацию.
CoDeSys_V23_RU.pdf
SysLibs_Overview_RU.pdf
<SysLib-Name_RU>.pdf
ENI Server
Установка и настройка ENI Сервера, управле-
ние версиями, работа с внешней базой данных.
Настройка ENI в CoDeSys: описана в печатном
руководстве по программированию.
ENI Admin, ENI Control и ENI Explorer: см.
встроенные системы помощи.
EniServerQuickstart.pdf
CoDeSys_V23_RU.pdf
2 Что есть что в CoDeSys
2.1 Компоненты проекта
Проект
Проект включает следующие объекты: POU, типы данных, визуализации, ресурсы, библиотеки.
Каждый проект сохраняется в отдельном файле.
POU (Program Organization Unit)
К программным компонентам (POU) относятся функциональные блоки, функции и программы. От-
дельные POU могут включать действия (подпрограммы).
Каждый программный компонент состоит из раздела объявлений и кода. Для написания всего кода
POU используется только один из МЭК языков программирования (IL, ST, FBD, SFC, LD или CFC).
CoDeSys поддерживает все описанные стандартом МЭК компоненты. Для их использования доста-
точно включить в свой проект библиотеку standard.lib.
POU могут вызывать другие POU, но рекурсии недопустимы.
Функция
Функция это POU, который возвращает только единственное значение (которое может состоять из
нескольких элементов, если это битовое поле или структура). В текстовых языках функция вызыва-
ется как оператор и может входить в выражения.
При объявлении функции необходимо указать тип возвращаемого значения. Для этого после имени
функции нужно написать двоеточие и тип. См. рекомендации по наименованию в приложении J.
Правильно объявленная функция выглядит следующим образом:
FUNCTION Fct: INT;
Имя функции используется как выходная переменная, которой присваивается результат вычисле-
ний.
Объявление функции должно начинаться с ключевого слова FUNCTION и заканчиваться ключевым
словом END_FUNCTION. Вот пример функции, написанной на IL, которая использует три входных
переменных и возвращает результат деления произведения первых двух на третью.
Пример функции, написанной на языке IL:
Что есть, что в CoDeSys
CoDeSys V2.3 2-2
В языке ST вызов функции может присутствовать в выражениях как операнд.
В SFC функция вызывается только из шага или перехода.
Примечание: Функция не имеет внутренней памяти, но CoDeSys допускает использование глобальных пере-
менных в функциях. Это является отклонением от требований стандарта МЭК 61131-3, в соответ-
ствии с которым выходное значение функции должно зависеть исключительно от входных пара-
метров. Т.е. функция с одними и теми же значениями входных параметров всегда должна возвра-
щать одно и то же значение.
Пример вызова функции:
На IL:
LD 7
Fct 2,4
ST Result
На ST:
Result : = Fct (7, 2, 4);
На FBD:
Внимание: объявление в функции RETAIN локальной переменной не приведет к желаемому результату. Не
пытайтесь создать локальные энергонезависимые переменные в функциях!
Примечание: имена перечисленных ниже функций зарезервированы для описанных целей:
В проекте можно определить функцию с именем CheckBounds, которая используется для проверки выхода за
границы массива (Подробнее см. описание арифметических функций в приложении).
С помощью функций: CheckDivByte, CheckDivWord, CheckDivDWord и CheckDivReal осуществляется кон-
троль деления на 0 (См. DIV).
Специализированные функции CheckRangeSigned и CheckRangeUnsigned контролируют границы диапазонов
переменных (См. Типы данных).
Функциональный блок
Функциональный блок - это POU, который принимает и возвращает произвольное число значений.
В отличие от функции функциональный блок не формирует возвращаемое значение.
Объявление функционального блока начинается с ключевого слова FUNCTION_BLOCK и заканчи-
вается ключевым словом END_FUNCTION_BLOCK. См. рекомендации по наименованию в при-
ложении J.
Ниже приведен пример функционального блока, написанного на IL, который имеет две входных и
две выходных переменных. Значение выходной переменной MULERG равно произведению значе-
ний двух входных переменных, а значение VERGL определяется в результате сравнения значений
входных переменных.
Пример функционального блока:
Что есть, что в CoDeSys
CoDeSys V2.3 2-3
Экземпляры функционального блока
Определение функционального блока подобно определению типа данных. Для работы с функцио-
нальным блоком необходимо объявить (создать) его экземпляр. Один функциональный блок может
иметь произвольное число экземпляров, каждый из которых имеет собственные независимые дан-
ные (память).
Каждый экземпляр функционального блока получает свой собственный идентификатор (имя экзем-
пляра) и свои данные, содержащие входные, выходные и внутренние переменные. Экземпляры
функционального блока объявляются глобально или локально как переменные, имеющие тип соот-
ветствующего функционального блока.
Пример объявления экземпляра с идентификатором fubinstance функционального блока FUB:
fubinstance: FUB;
Вызов экземпляра функциональный блока происходит с помощью его имени. Входные и выходные
переменные доступны вне функционального блока, а внутренние переменные доступны только в
самом блоке.
Пример использования входных переменных:
функциональный блок fb имеет входную переменную iInl типа INT:
PROGRAM prog
VAR
fbinst1 : fb;
END_VAR
LD 17
ST fbinst1.iIn1
CAL fbinst1
END_PROGRAM
Экземпляры функционального блока могут быть объявлены в другом функциональном блоке или в
программе. Объявлять экземпляр функционального блока в теле функции нельзя. Экземпляры
функционального блока доступны в том POU, в котором они объявлены, если они не объявлены
глобально.
Экземпляры функциональных блоков могут быть использованы в качестве входных переменных
других функциональных блоков или функций.
Что есть, что в CoDeSys
CoDeSys V2.3 2-4
Замечания. После выполнения функционального блока все его переменные сохраняются до следующего вы-
полнения. Следовательно, функциональный блок, вызываемый с одними и теми же входными па-
раметрами, может производить различные выходные значения.
Если хотя бы одна переменная функционального блока объявлена как RETAIN, то все данные экземпляров це-
ликом помещаются в энергонезависимый сегмент.
Вызов функционального блока
Для обращения к входным и выходным переменным функционального блока извне необходимо
указать имя экземпляра функционального блока, следующей за ней точкой и именем переменной:
<Имя экземпляра>.<Имя переменной >
Присваивание параметров при вызове:
В текстовых языках (IL, ST) задать актуальные параметры и считать значения выходов можно не-
посредственно при вызове экземпляра функционального блока. Для входных переменных применя-
ется присваивание ":=", выходы считываются при помощи "=>". Этот процесс упрощается, если ис-
пользоватьАссистент ввода (Input Assistant)(<F2>) с включенной опциейВставка с аргумен-
тами (With arguments).
Пример:
Допустим, FBINST - это локальная переменная типа функциональный блок, имеющий входную пе-
ременную xx и выходную переменную yy. При вставке FBINST в ST с помощью ассистента ввода
получается следующая заготовка:
FBINST1(xx:= , yy=> );
Переменные вход-выход:
Обратите внимание, что переменные вход-выход (VAR_IN_OUT) передаются в экземпляр функ-
ционального блока через указатели. Поэтому таким переменным нельзя присваивать константы при
вызове.
Вызов экземпляра fuboinst с входом iInOut1 типа VAR_IN_OUT:
VAR
fuboinst: fubo;
iVar1: int;
END_VAR
iVar1 := 2;
fuboinst (iInOut1 := iVar1);
Не допустимы попытки присваивания констант:
fuboinst (iInOut1:=2); или fuboinst .iInOut1:=2;
Примеры вызова экземпляра вышеописанного функционального блока FUB:
Результат умножения сохраняется в переменной ERG, а результат сравнения в переменной QUAD.
Экземпляр функционального блока FUB называется INSTANZ.
Вызов экземпляра функционального блока в IL:
Что есть, что в CoDeSys
CoDeSys V2.3 2-5
Тот же пример в ST (раздел объявлений такой же, как и в предыдущем примере):
Тот же пример в FBD:
В SFC экземпляры функциональных блоков могут вызываться только из действий шага.
Программа
Программа это POU, способный формировать произвольное значение во время вычислений. Зна-
чения всех переменных программы сохраняются между вызовами. В отличие от функционального
блока экземпляров программы не существует. Программа является глобальной во всем проекте.
Нельзя вызывать программу из функции.
Если вызвать программу, которая изменит значения своих переменных, то при следующем вызове
ее переменные будут иметь те же значения, даже если она вызвана из другого POU.
В этом заключается главное различие между программой и функциональным блоком, в котором
изменяются только значения переменных данного экземпляра функционального блока.
Что есть, что в CoDeSys
CoDeSys V2.3 2-6
Объявление программы начинается ключевым словом PROGRAM и заканчивается ключевым сло-
вом END_PROGRAM. См. рекомендации по наименованию в приложении J.
Пример программы:
Так же, как и для экземпляров функциональных блоков, в текстовых языках (IL, ST) задать акту-
альные параметры и считать значения выходов можно непосредственно при вызове программы. Для
входных переменных применяется присваивание ":=", выходы считываются при помощи "=>".
Пример вызова программы:
IL:
CAL PRGexample2
LD PRGexample2.out_var
ST erg
Или с присваиванием параметров:
CAL PRGexample2(in_var:=33, out_var=>erg )
ST:
PRGexample2;
erg := PRGexample2.out_var;
Или с присваиванием параметров:
PRGexample2(in_var:=33, out_var=>erg );
FBD:
PLC_PRG
Программа PLC_PRG это специальный POU, который должен быть в каждом проекте. Эта про-
грамма вызывается один раз за цикл управления.
При создании нового проекта автоматически открывается диалогПроект(Project)Объект - До-
бавить (Object Add), предлагающий создать новый POU - программу с именем PLC_PRG.
Не следует менять предложенные установки.
Если определить последовательность выполнения задач в Конфигураторе задач (Task
Configuration), то проект может не содержать PLC_PRG.
Внимание: Нельзя удалять или переименовывать POU PLC_PRG (еслиКонфигурация задач (Task
Configuration) не используется). PLC_PRG является главной программой в однозадачном проек-
те.
Что есть, что в CoDeSys
CoDeSys V2.3 2-7
Действие
Программы или функциональные блоки могут быть дополнены действиями. Фактически действия -
это дополнительный набор встроенных в POU подпрограмм. Действия могут описываться на языке,
отличном от того, на котором выполняется соответствующий функциональный блок или програм-
ма.
Действие оперирует с теми же данными, что и функциональный блок или программа, к которой оно
принадлежит.
Пример действия функционального блока:
В данном примере функциональный блок Counter увеличивает или уменьшает выходную перемен-
ную "out" в зависимости от значения входа "in". При вызове действия Reset выходная переменная
принимает значение 0. Одна и та же переменная "out" используется в обоих случаях.
Вызов действия:
Действие вызывается с помощью идентификатора:
<Имя_программы>.<Имя_действия> или <Имя_экземпляра>.<Имя_действия >.
Если нужно вызвать действие из POU, к которому оно принадлежит, то в текстовых языках исполь-
зуется имя действия, а в графических функциональный блок без указания имени экземпляра.
Пример вызова вышеописанного действия:
PROGRAM PLC_PRG
VAR
Inst : Counter;
END_VAR
IL:
CAL Inst.Reset(In : = FALSE)
LD Inst.out
ST ERG
ST:
Inst.Reset(In := FALSE);
Erg := Inst.out;
FBD:
Замечание Действия играют ключевую роль в SFC (подробнее смотри раздел SFC).
Что есть, что в CoDeSys
CoDeSys V2.3 2-8
Стандарт МЭК определяет только действия SFC шагов. Применение действий в функциональных блоках и
программах является расширением CoDeSys.
Ресурсы
Ресурсы отвечают за конфигурацию проекта, включая:
§ Глобальные переменные, используемые во всем проекте.
§ Менеджер библиотек (Library manager) для подключения необходимых библиотек к
проекту
§ Бортжурнал (Log) для записи действий во время исполнения
§ Конфигурация тревог (Alarm Configuration) для конфигурирования обработки тревог
в проекте
§ Конфигурация ПЛК (PLC Configuration) для конфигурирования аппаратуры контрол-
лера.
§ Конфигурация задач (Task Configuration) для управления задачами
§ Менеджер просмотра (Watch and Recipe Manager) для просмотра и заказа наборов
значений переменных
§ Настройки целевой платформы (Target Settings)
§ Рабочая область (Workspace) для отображения опций проекта
В зависимости от системы исполнения и ее опций могут подключаться дополнительные объекты:
§ Цифровая трассировка (Sampling Trace) - для задания графической трассировки зна-
чений переменных.
§ Менеджер параметров (Parameter Manager) - для взаимодействия с другими контрол-
лерами в сети
§ ПЛК-Браузер (PLC-Browser) - монитор ПЛК
§ Инструменты (Tools) для вызова внешних, специфичных для каждой платформы ин-
струментов
§ SoftMotion компоненты системы управления движением (в соответствии с лицензией),
редакторы CNC и CAM
Библиотеки
Проект может использовать несколько библиотек, в которые входят POU, необходимые им типы
данных и глобальные переменные. Библиотечные POU можно использовать точно так же, как и оп-
ределенные пользователем.
Библиотеки "standard.lib" и "util.lib" обязательно входят в стандартный комплект поставки.
(См. «Менеджер библиотек» (Library manager))
Типы данных
Кроме стандартных типов данных, вы можете использовать определяемые пользователем типы
данных. Ими могут быть структуры, перечисления и ссылки.
(См. ПриложениеТипы данных (Data types))
Визуализация
С помощью визуализации пользователь может создать графическое представление проекта. Форма
и цвет графических элементов будут изменяться при работе программы в зависимости от значений
переменных.
Визуализация может исполняться в системе программирования, в отдельном приложении CoDeSys
HMI или как Web или целевая (в ПЛК) визуализация. (См. раздел «CoDeSys Визуализации» (Visu-
alizations))
2.2 Языки программирования
CoDeSys поддерживает следующие текстовые:
Что есть, что в CoDeSys
CoDeSys V2.3 2-9
Instruction List (IL) - Список инструкций
Structured Text (ST) Структурированный текст
и графические МЭК языки:
Sequential Function Chart (SFC) Последовательные Функциональные Схемы
Function Block Diagram (FBD) Функциональные Блоковые Диаграммы
Ladder Diagram (LD) Релейно-Контактные Схемы
Кроме того, CoDeSys включает поддержку основанного на Функциональных Блоковых Диаграм-
мах, редактора Continuous Function Chart (CFC) Непрерывные Функциональные Схемы.
Список инструкций (IL)
В IL (Instruction list) каждая инструкция начинается с новой строки и содержит оператор и, в зави-
симости от типа операции, один и более операндов, разделенных запятыми.
Перед операндом может находиться метка, заканчивающаяся двоеточием (:). Комментарий должен
быть последним элементом в строке. Между инструкциями могут находиться пустые строки.
Пример:
LD 17
ST lint (* комментарий*)
GE 5
JMPC next
LD idword
EQ istruct.sdword
STN test
next:
Модификаторы и операторы IL
В IL можно использовать следующие операторы и модификаторы:
Модификаторы:
С с JMP, CAL, RET: инструкция выполняется только тогда, когда результат аккумуля-
тора ИСТИНА.
N с JMPC,CALC, RETC:
инструкция выполняется тогда, когда результат аккумулятора
ЛОЖЬ.
N в других случаях: отрицание операнда.
Ниже приведена таблица всех операторов IL с пояснениями и допустимыми модификаторами:
Оператор Модифи-
катор
Значение
LD N Присвоение аккумулятору значения оператора
ST N Присвоение значения аккумулятора операнду
S Присвоить логическому операнду значение ИСТИНА, если зна-
чение аккумулятора ИСТИНА
R Присвоить логическому операнду значение ЛОЖЬ
AND N, ( Побитное И
OR N, ( Побитное ИЛИ
XOR N, ( Побитное исключающее ИЛИ
ADD ( Сложение
SUB ( Вычитание
MUL ( Умножение
Что есть, что в CoDeSys
CoDeSys V2.3 2-10
DTV ( Деление
GT ( >
GE ( >=
QE ( =
NE ( < >
LE ( <=
LT ( <
JMP CN Переход к метке
CAL CN Вызов функционального блока
RET CN Выход из POU и возврат в вызывающую программу.
) Вычисление задержанной операции
Список всех операторов МЭК приведен в приложении.
Пример IL программы с использованием некоторых модификаторов:
LD TRUE (*загрузить значение ИСТИНА в аккумулятор*)
AND BOOL1 (*выполнить И с инверсным значением переменной BOOL1*)
JMPC mark (*если значение аккумулятора ИСТИНА, то перейти к метке
" mark"*)
LDN BOOL2 (*сохранить инверсное значение BOOL2 в аккумуляторе*)
ST ERG (*сохранить значение аккумулятора в ERG*)
После оператора можно поставить скобки, тогда значение выражения внутри скобок рассматрива-
ется как операнд.
Например:
LD 2
MUL 2
ADD 3
ST ERG
Здесь значение ERG равно 7. Если поставить скобки, то порядок вычислений изменится:
LD 2
MUL ( 2
ADD 3
)
ST ERG
Теперь значение переменной ERG равно 10.
Операция MUL выполняется только тогда, когда программа доходит до ")". В качестве операнда
MUL использует значение 5.
Структурированный текст (ST)
ST представляет собой набор инструкций высокого уровня, которые могут использоваться в услов-
ных операторах ("IFTHENELSE") и в циклах (WHILEDO).
Пример:
IF value < 7 THEN
WHILE value < 8 DO
value:=value+1;
END_WHILE;
END_IF;
/