- •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: Ошибки и предупреждения компилятора
- •Предупреждения
- •Ошибки
Приложение K: Ошибки и предупреждения компилятора
Приложение K: Ошибки и предупреждения компилятора
CoDeSys V2.3 |
10-105 |
Приложение K: Ошибки и предупреждения компилятора
Если при компиляции проекта обнаружены ошибки или предупреждения, то соответствующие им сообщения будут отображены в окне сообщений. Клавиша <F4> позволяет переходить к следующему сообщению. При этом открывается окно редактора соответствующего POU. Каждая ошибка и сообщение имеет уникальный номер. Клавиша <F1> в окне сообщений открывает соответствующее ошибке окно описания справочной системы.
Предупреждения
1100
"Неизвестная функция '<имя>' в библиотеке."
Используется внешняя библиотека. Проверьте, все ли функции, присутствующие в .hex file, опре-
делены в .lib file.
1101
"Неразрешенный символ '<символ>'."
Генератор кода предполагает POU с именем <символ>, неопределенный в проекте. Определите функцию/программу с таким именем.
1102
"Ошибка в интерфейсе '<символ>'."
Генератор кода предполагает функцию с именем <символ> и имеющую один скалярный вход, либо программу с именем <символ> и не имеющую входов и выходов.
1103
"Константа '<имя>' по адресу '<адрес>' превышает границу 16K страницы!"
Строковая константа превышает 16K-границу страницы. Система не имеет таких ограничений. Свяжитесь с изготовителем ПЛК.
1200
"Задача '<имя>', вызов '<имя>': переменные общего доступа в списке параметров не обновлены"
Переменные, которые используются при вызове функциональных блоков в конфигурации задач, не перечисляются в списке перекрестных ссылок.
1300
"Файл '<имя>' не найден"
Файл, на который указывает объект глобальных переменных, не существует. Проверьте правильность указания пути.
1301
"Analyze-библиотека не найдена! Соответствующий код не может быть сгенерирован"
Функция анализа используется, но библиотека analyzation.lib отсутствует. Добавьте в проект эту библиотеку.
CoDeSys V2.3 |
10-106 |
Приложение K: Ошибки и предупреждения компилятора
1302
"Добавлены новые функции, отсутствующие в системе. Горячее обновление невозможно!"
С момента последней загрузки вы подключили библиотеку, содержащую функции, отсутствующие в системе. Перезагрузите проект полностью.
1400
"Неизвестная директива (pragma) '<имя>' проигнорирована!"
Данная директива ‘pragma’ не поддерживается компилятором. См. "Директивы компилятора".
1401
"Структура '<имя>' не содержит никаких элементов"
Структура не содержит элементов, но переменные этого типа занимают 1 байт памяти.
1410
"'RETAIN' и 'PERSISTENT' не имеют смысла в функциях"
Объявленные внутри функции локальные RETAIN и PERSISTENT-переменные размещаются в обычной области локальных переменных.
1411
"Переменная конфигурации '<имя>' не изменяется ни в одной задаче"
Верхний уровень экземпляра переменной не участвует в вызове ни одной задачи, поэтому она не копируется из образа процесса.
Пример:
Variable Configuration:
VAR_CONFIG
plc_prg.aprg.ainst.in AT %IB0 : INT; END_VAR
plc_prg:
index := INDEXOF(aprg);
На программу aprg есть ссылка, но нет вызова. Поэтому plc_prg.aprg.ainst. никогда не примет актуальное значение %IB0.
1412
"Нестандартный символ '<имя>' в директиве {имя}"
Вы используете недопустимую в данном месте, либо некорректно записанную директиву компи-
лятора 'pragma'.
1413
"'<имя>' неверный ключ в директиве '<имя>'. Ключ будет проигнорирован"
Указан несуществующий список параметров. Используйте менеджер параметров для выбора доступных списков.
1414
"Слишком много определений в директиве '<имя>'"
Pragma содержит определений больше (в скобках), чем есть элементов в соответствующем массиве, функциональном блоке или структуре.
CoDeSys V2.3 |
10-107 |
Приложение K: Ошибки и предупреждения компилятора
1415
"’<имя>’ (<число>): литерал '<число>' относится к нескольким перечислениям"
В объявлении перечисления <имя> одинаковые числа использованы для более чем одного элемен-
та (например: TYPE aenum (a:=1, b:=1); END_TYPE).
1500
"Выражение не содержит присваивания. Код не будет сгенерирован."
Результат выражения нигде не использован. Поэтому код выражения не генерируется.
1501
"Строковую константу, передаваемую как 'VAR_IN_OUT' '<имя>' нельзя перезаписывать!"
Такая константа не может быть записана в POU, поскольку нет возможности определить ее размер.
1502
"Переменная '<имя>' имеет то же имя, что и POU. POU не будет вызван!"
Переменная имеет одинаковое с POU имя.
Пример:
PROGRAM a
...
VAR_GLOBAL a: INT;
END_VAR
...
a; (* Вместо вызова POU загружается переменная. *)
1503
"The POU ‘<имя>’ не имеет выходов. Результату присвоено значение 'TRUE'"
Выход POU, неимеющего определенных выходов, соединен в FBD. Автоматически присваивание дает TRUE.
1504
"’<имя>’ (‘<число>’): выражение может быть не выполнено в связи с вычислением логического выражения "
Возможно, не все ветви логического выражения будут вычисляться.
Пример:
IF a AND funct(TRUE) THEN ....
Если а равно FALSE, то funct не будет вызвана.
1505
"Зависимое разветвление в '<имя>'! Ветвь может быть не вызвана!"
Первый вход POU равен FALSE, поэтому выражения в боковой ветви других входов не будут вычисляться.
CoDeSys V2.3 |
10-108 |
Приложение K: Ошибки и предупреждения компилятора
1506
"Переменная '<имя>' имеет то же имя, что и локальное действие. Действие не будет вызвано!"
Переменная имеет то же имя, что и действие. Действие не вызывается. Переименуйте переменную или действие.
1507
"Экземпляр '<имя>' имеет то же имя, что и функция. Экземпляр не будет вызван."
Вы вызываете в ST экземпляр, имеющий одинаковое с функцией имя. Будет вызвана функция. Используйте разные имена. И фун
1509
"'<имя>' ('<число>'): Функции обратного вызова должны начинаться с 'Callback'"
Попытка использовать функцию callback, имя которой не начинается с “callback”. Это может вызвать ошибки в работе на RISC процессорах Motorola 68K!
1550
"Несколько вызовов POU '<имя>' в одной цепи могут вызвать побочные эффекты"
Несколько вызовов одного POU в одной цепи могут дать побочные эффекты.
1600
"Неясно, какой DB открыт (генерируемый код может быть ошибочным)"
Исходная Siemens-программа не содержит инструкции выбора DB.
1700
"Вход не подсоединен"
Входной элемент CFC не имеет присваивания. Поэтому код не генерируется.
1750
"Шаг '<имя>': минимальное время больше максимального!"
Откройте диалог 'Step attributes' данного шага и проверьте задание макс. и мин. времён.
1800
"<имя>(элемент #<номер элемента>): неверное наблюдаемое выражение '<имя>'"
Элемент визуализации содержит выражение, которое невозможно вычислить. Проверьте имена и заместители в выражении.
1801
"'<имя> (число): вход в выражении '<имя>' невозможен"
В конфигурации визуализации объекта в качестве входного поля указано выражение. Здесь допускается только переменная.
CoDeSys V2.3 |
10-109 |
Приложение K: Ошибки и предупреждения компилятора
1802
"<Объект визуализации>(номер элемента): растровое изображение '<имя>' не найдено"
Проверьте, существует ли указанный растровый рисунок.
1803
"'<имя>'('<число>'): печать не работает в целевой и web-визуализации"
Вывод на печать задан как действие при тревоге. Это не будет работать в Web- и Targetвизуализации.
1804
"'<имя>'('<число>'): шрифт '<имя>' не поддерживается целевым устройством"
В визуализации вы использовали шрифт, неподдерживаемый целевой платформой. См. категорию Визуализация в опциях платформы.
1805
"'<имя>'('<число>'): должна быть включена целевая установка 'Сохранять данные трендов в ПЛК'"
Вы используете элемент сохранения данных трендов, но эта опция отключена в категории Визуализации в опциях платформы.
1806
"'<имя>'('<число>'): должна быть включена целевая установка 'Обработка тревог в ПЛК'"
Вы используете элемент "тревога" в визуализации, но эта опция отключена в категории Визуализация в опциях платформы.
1807
"<имя> (<число>): окно тревожных сообщений не поддерживается в целевой визуализации"
Обратите внимание, что действие "сообщение" не поддерживается в целевой визуализации!
1808
"'<имя>'('<число>'): Полигон содержит слишком много точек для целевой визуализации. Измените настройки платформы или переконфигурируйте элемент"
Полигон содержит слишком много точек для целевой визуализации. По умолчанию допускается 512 точек. Измените этот параметр в настройках платформы или переконфигурируйте элемент.
1809
"'<имя> ('<число>'): не найдена вызываемая визуализация"
Указанная визуализация не найдена, проверьте правильность наименования и ее наличие.
1850
"Входная переменная %IB<число> используется в задаче '<имя>' но обновляется в другой задаче"
CoDeSys V2.3 |
10-110 |
Приложение K: Ошибки и предупреждения компилятора
Проверьте, какие задачи используют данную переменную, и убедитесь, что это не может привести к нежелательным эффектам. Как правило, обновление переменной выполняется в задаче с наивысшим приоритетом.
1851
"Выходная переменная %IQ<число> используется в задаче '<имя>' но обновляется в другой задаче"
Проверьте, какие задачи используют данную переменную, и убедитесь, что это не может привести к нежелательным эффектам. Как правило, обновление переменной выполняется в задаче с наивысшим приоритетом.
1852
"CanOpenMaster в событийной задаче '<имя>' не может быть вызван циклично! Установите параметр модуля UpdateTask!"
CanOpen Master вызывается из указанной задачи, управляемой событием. Если вы хотите заставить его работать циклически, то задайте соответствующую задачу посредством параметра
UpdateTask в диалоге dialog 'Module parameters' конфигуратора ПЛК.
1853
"PDO (индекс: '<число>') в событийной задаче '<имя>' не может быть вызван циклично."
Данный PDO управляется указанной задачей, управляемой событием. Но если вы хотите получить ее циклические вызовы, то нужно присвоить PDO соответствующую циклическую задачу, то есть поместить в нее ссылки на ввод-вывод.
1900
"POU '<имя>' не применяется в библиотеке"
Начальный POU (т.е. PLC_PRG) не доступен, если проект используется как библиотека.
1901
"Переменные общего доступа и конфигурационные переменные не записываются в библиотеку!"
Переменные общего доступа и конфигурируемые переменные не записываются в библиотеку.
1902
"'<имя>': библиотека не подходит для данной платформы или повреждена!"
Файл .obj сгенерирован для другого устройства.
1903
"<имя>: библиотека повреждена"
Данный файл не удовлетворяет требованиям формата библиотеки выбранной платформы.
1904
"Константа '<имя>' перекрывает константу с таким же именем в библиотеке"
В вашем проекте определена константа, имеющая то же имя, что и в присоединенной библиотеке. Библиотечная переменная будет переопределена!
CoDeSys V2.3 |
10-111 |
