- •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: Ошибки и предупреждения компилятора
- •Предупреждения
- •Ошибки
Приложение J: Рекомендации по наименованию
Приложение J: Рекомендации по наименованию
Наименование идентификаторов
Идентификаторы определяются при объявлении переменных, пользовательских типов данных, при создании POU и визуализаций. Ниже приведены рекомендации по образованию имен идентификаторов, позволяющие сделать их понятными и уникальными, на сколько это возможно.
Идентификаторы переменных
Используйте Венгерскую нотацию для наименования переменных в приложениях и библиотеках:
В качестве основы имени переменной необходимо выбрать краткое значимое наименование, говорящее о ее назначении. Слова, составляющие основу, пишутся без пробелов с заглавной буквы
(например: FileSize).
Перед основой имени необходимо поместить префикс, записанный строчными буквами, который будет говорить о типе данной переменной.
Тип |
Нижняя гра- |
Верхняя гра- |
Размер |
Префикс |
Комментарий |
|
||
|
ница |
ница |
(бит) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
BOOL |
FALSE |
TRUE |
1 |
x * |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
b |
Логическая |
перемен- |
||
|
|
|
|
|
ная |
|
|
|
BYTE |
|
|
8 |
by |
Битовая строка, не |
|
||
|
|
|
|
|
использовать в ариф- |
|||
|
|
|
|
|
метических выраже- |
|||
|
|
|
|
|
ниях |
|
|
|
WORD |
|
|
16 |
w |
Битовая |
строка, |
не |
|
|
|
|
|
|
использовать в ариф- |
|||
|
|
|
|
|
метических |
выраже- |
||
|
|
|
|
|
ниях |
|
|
|
|
|
|
|
|
|
|
|
|
DWORD |
|
|
32 |
dw |
Битовая |
строка, |
не |
|
|
|
|
|
|
использовать в ариф- |
|||
|
|
|
|
|
метических |
выраже- |
||
|
|
|
|
|
ниях |
|
|
|
|
|
|
|
|
|
|
|
|
LWORD |
|
|
64 |
lw |
Битовая |
строка, |
не |
|
|
|
|
|
|
использовать в ариф- |
|||
|
|
|
|
|
метических |
выраже- |
||
|
|
|
|
|
ниях |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SINT |
-128 |
127 |
8 |
si |
|
|
|
|
USINT |
0 |
255 |
8 |
usi |
|
|
|
|
|
|
|
|
|
|
|
|
|
INT |
-32.768 |
32.767 |
16 |
i |
|
|
|
|
|
|
|
|
|
|
|
|
|
UINT |
0 |
65.535 |
16 |
ui |
|
|
|
|
|
|
|
|
|
|
|
|
|
DINT |
-2.147.483.648 |
2.147.483.647 |
32 |
di |
|
|
|
|
|
|
|
|
|
|
|
|
|
UDINT |
0 |
4.294.967.295 |
32 |
udi |
|
|
|
|
|
|
|
|
|
|
|
|
|
LINT |
-263 |
263 - 1 |
64 |
li |
|
|
|
|
ULINT |
0 |
264 - 1 |
64 |
uli |
|
|
|
|
|
|
|
|
|
|
|
|
|
REAL |
|
|
32 |
r |
|
|
|
|
|
|
|
|
|
|
|
|
|
CoDeSys V2.3 |
10-101 |
Приложение J: Рекомендации по наименованию
LREAL |
|
|
64 |
lr |
|
|
|
|
|
|
|
|
|
|
|
|
|
STRING |
|
|
|
s |
|
|
|
|
|
|
|
TIME |
|
|
|
tim |
|
|
|
|
|
|
|
TIME_OF_DAY |
|
|
|
tod |
|
|
|
|
|
|
|
DATETIME |
|
|
|
dt |
|
|
|
|
|
|
|
DATE |
|
|
|
date |
|
|
|
|
|
|
|
ENUM |
|
|
16 |
e |
|
|
|
|
|
|
|
POINTER |
|
|
|
p |
|
|
|
|
|
|
|
ARRAY |
|
|
|
a |
|
|
|
|
|
|
|
* префикс x используется для переменной типа BOOL, если нужно подчеркнуть что она представляет собой именно один бит, что происходит при использовании прямого адреса бита (например %IX0.0). Если логическая переменная объявлена без указания адреса, то как правило, под нее выделяется целый байт (для оптимизации по быстродействию).
Примеры: bySubIndex: BYTE;
sFileName: STRING;
udiCounter: UDINT;
Вслучае составных объявлений, применяются составные префиксы:
Пример:
pabyTelegramData: POINTER TO ARRAY [0..7] OF BYTE;
Для экземпляров функциональных блоков и переменных пользовательских типов в качестве префикса используется сокращенное наименование функционального блока или типа (например: sdo).
Пример:
cansdoReceivedTelegram: CAN_SDOTelegram;
TYPE CAN_SDOTelegram : (* префикс: sdo *)
STRUCT
wIndex:WORD;
bySubIndex:BYTE;
byLen:BYTE;
aby: ARRAY [0..3] OF BYTE; END_STRUCT
END_TYPE
Константы начинаются с префикса c. За ним следует подчеркивание, префикс типа и основное имя.
Пример:
VAR CONSTANT
c_uiSyncID: UINT := 16#80;
END_VAR
Префиксы глобальных переменных (g) и глобальных констант (gc) отделяются подчеркивани-
ем. Дополнительный префикс вводится для библиотек:
CoDeSys V2.3 |
10-102 |
Приложение J: Рекомендации по наименованию
Примеры:
VAR_GLOBAL CAN_g_iTest: INT;
END_VAR
VAR_GLOBAL CONSTANT
CAN_gc_dwExample: DWORD;
END_VAR
Идентификаторы пользовательских типов (DUT)
Наименование структур образуется из префикса библиотеки (например: CAN), подчеркивания и возможно более короткой основы имени (например: SDOTelegram). В комментарии приводится префикс, принятый для образования имен переменных данного типа.
Примеры:
TYPE CAN_SDOTelegram : (*префикс: sdo *)
STRUCT
wIndex:WORD;
bySubIndex:BYTE;
byLen:BYTE;
abyData: ARRAY [0..3] OF BYTE;
END_STRUCT
END_TYPE
Перечисления начинаются с имени библиотеки (например: CAL) и следующего за подчеркиванием наименования с заглавной буквы.
Пример:
TYPE CAL_Day :( CAL_MONDAY, CAL_TUESDAY, CAL_WEDNESDAY, CAL_THIRSDAY, CAL_FRIDAY, CAL_SATURDAY, CAL_SUNDAY);
Объявление:
eToday: CAL_Day;
Идентификаторы функций, функциональных блоков и программ
(POU)
Имена для функций, функциональных блоков и программ образуются из префикса имени библиотеки (например: CAN), подчеркивания и краткой выразительной основы (например: SendTelegram). Как и для переменных, первая буква каждого слова должна быть заглавной. Рекомендуется составлять имена POU из глагола и существительного.
CoDeSys V2.3 |
10-103 |
Приложение J: Рекомендации по наименованию
Пример:
FUNCTION_BLOCK CAN_SendTelegram (* префикс: canst *)
В разделе объявлений должно быть дано краткое описание POU в виде комментария. Также все входы и выходы необходимо снабдить комментариями. Для функциональных блоков необходимо сразу указать префикс, который будет использоваться при создании экземпляров.
Для действий нет специального префикса. Но действия, которые должны вызываться только из самого блока (приватные), получают префикс „prv_“.
Каждая функция должна иметь хотя бы один параметр, для совместимости с предыдущими версиями CoDeSys. Внешние функции не должны возвращать структуру.
Идентификаторы визуализаций
При наименовании визуализаций необходимо учитывать только одно: их имена не должны совпадать с именами POU в проекте. В противном случае, могут возникнуть затруднения при переключении визуализаций.
CoDeSys V2.3 |
10-104 |
