- •1 Краткое представление CoDeSys
- •1.1 Что такое CoDeSys
- •1.2 Представление о работе в CoDeSys
- •1.3 Состав базовой пользовательской документации по CoDeSys
- •2 Что есть что в CoDeSys
- •2.1 Компоненты проекта
- •2.2 Языки программирования
- •Список инструкций (IL)
- •Модификаторы и операторы IL
- •Структурированный текст (ST)
- •Язык последовательных функциональных схем (SFC)
- •Язык функциональных блоковых диаграмм (FBD)
- •Непрерывные функциональные схемы (CFC)
- •Язык релейных диаграмм (LD)
- •2.3 Отладка и онлайн функции
- •3 Пишем простой пример
- •3.1 Блок управления светофором
- •3.2 Визуализация примера
- •4 Работа в системе программирования CoDeSys
- •4.1 Главное окно
- •4.2 Опции проекта
- •4.3 Управление проектом
- •4.4 Управление объектами проекта
- •4.5 Основные функции редактирования
- •4.6 Основные функции Онлайн
- •4.7 Работа с окнами
- •4.8 Помощь
- •5 Редакторы CoDeSys
- •5.1 Общие элементы редакторов
- •5.2 Редактор раздела объявлений
- •Работа в редакторе объявлений
- •Редактор раздела объявлений в режиме Онлайн
- •Директивы компилятора
- •5.3 Текстовые редакторы
- •Работа в текстовых редакторах
- •Редактор языка IL
- •Редактор языка ST
- •5.4 Графические редакторы
- •Работа в графических редакторах
- •Редактор FBD
- •Редактор LD
- •Редактор SFC
- •Редактор CFC
- •6 Ресурсы
- •6.1 Обзор ресурсов
- •Глобальные переменные
- •Конфигурационные переменные
- •Файл комментариев переменных
- •6.3 Конфигурация тревог (Alarm Configuration)
- •Обзор
- •Общая информация и терминология
- •Классы тревог
- •Группы тревог
- •Запись тревог
- •'Дополнения' (Extras): 'Настройки' (Settings)
- •6.4 Менеджер библиотек (Library Manager)
- •6.5 Бортжурнал (Log)
- •6.6 Конфигуратор ПЛК (PLC Configuration)
- •Обзор
- •Работа в редакторе конфигуратора ПЛК
- •Общие параметры конфигурации ПЛК
- •Диалог специфической настройки параметров
- •Конфигурация модулей ввода/вывода
- •Конфигурация канала
- •Конфигурирование модулей Profibus
- •Конфигурирование CANopen-модулей
- •Конфигурирование ведомого CANopen-устройства (CANopen Slave)
- •Конфигурирование модулей DeviceNet
- •Конфигурация ПЛК в режиме Онлайн
- •Сканирование аппаратуры/ Состояние/ Диагностика ПЛК
- •6.7 Конфигуратор задач (Task Configuration)
- •Обзор
- •Работа в конфигураторе задач
- •Системные события
- •Конфигуратор задач в режиме онлайн
- •6.8 Менеджер просмотра (Watch and Recipe Manager)
- •Обзор
- •Менеджер просмотра в режиме оффлайн
- •Менеджер просмотра в режиме Онлайн
- •6.9 Цифровая трассировка (Sampling Trace)
- •Обзор
- •Конфигурация трассировки
- •Управление процессом трассировки
- •Отображение данных
- •‘Дополнения’ ‘Запись значений трассировки’ ('Extras' 'Save trace values')
- •6.10 Рабочая область (Workspace)
- •6.11 Менеджер параметров (Parameter Manager)
- •Обзор и подключение
- •Редактор менеджера параметров. Обзор
- •Типы списков параметров и их атрибуты
- •Управление списками параметров
- •Редактирование списка параметров
- •Менеджер параметров в режиме онлайн
- •Экспорт/импорт списков параметров
- •6.12 Настройки целевой платформы (Target Settings)
- •6.13 ПЛК-Браузер (PLC-Browser)
- •Общие сведения
- •Набор команд ПЛК-Браузера
- •Макрорасширения команд ПЛК-Браузера
- •Вспомогательные команды ПЛК-Браузера
- •6.14 Инструменты (Tools)
- •Свойства доступных инструментов (Object Properties)
- •Настройка команд инструментов
- •Часто задаваемые вопросы по инструментам
- •7.1 Что такое ENI?
- •7.2 Условия работы с ENI базой данных в проекте
- •7.3 Работа с ENI базой данных в проекте CoDeSys
- •7.4 Категории объектов в базе данных проекта
- •8 DDE интерфейс
- •8.1 DDE интерфейс CoDeSys
- •8.2 DDE обмен посредством GatewayDDE Server
- •9 Менеджер лицензирования CoDeSys
- •9.1 Обзор
- •9.2 Создание лицензированных библиотек в CoDeSys
- •10.1 Арифметические операторы
- •10.2 Битовые операторы
- •10.3 Операторы сдвига
- •10.4 Операторы выборки
- •10.5 Операторы сравнения
- •10.6 Адресные операторы
- •Вспомогательные функции
- •10.8 Оператор вызова
- •10.9 Явное преобразование типов
- •10.10 Математические функции
- •Приложение В: Операнды в CoDeSys
- •Константы
- •Переменные
- •Адреса
- •Функции в роли операндов
- •Приложение С: Типы данных CoDeSys
- •Элементарные типы данных
- •Пользовательские типы данных
- •Приложение D: Библиотеки CoDeSys
- •Стандартная библиотека Standard.lib
- •Строковые функции
- •Переключатели
- •Детекторы импульсов
- •Счетчики
- •Таймеры
- •Библиотека UTIL.LIB
- •BCD преобразования
- •Бит/байт функции
- •Дополнительные математические функции
- •Регуляторы
- •Генераторы сигналов
- •Преобразования аналоговых сигналов
- •Аналоговые компараторы
- •Библиотека AnalyzationNew.lib
- •Системные библиотеки CoDeSys
- •Приложение E: Краткий справочник по операторам и компонентам библиотек
- •Операторы CoDeSys:
- •Компоненты Standard.lib:
- •Компоненты Util.lib:
- •Приложение F: Командная строка / командный файл
- •Командная строка
- •Командный файл (cmdfile)
- •Приложение G: Сименс импорт.
- •Импорт из символьных файлов SEQ
- •Импорт из файла проекта S5
- •Конвертирование языка S5 в МЭК C 61131-3
- •Приложение H: Опции целевых систем
- •Системные опции целевых платформ (Target Platform)
- •Intel 386 совместимые
- •Motorola 68K
- •Infineon C16x
- •ARM и Power PC
- •MIPS
- •'Hitachi SH'
- •8051 совместимые
- •Infineon 'TriCore’
- •Опции распределения памяти (Memory Layout).
- •Опции общей категории (General)
- •Опции категории Сетевая функциональность
- •Опции категории Визуализация
- •Приложение I: Использование клавиатуры
- •Приложение J: Рекомендации по наименованию
- •Наименование идентификаторов
- •Идентификаторы переменных
- •Идентификаторы пользовательских типов (DUT)
- •Идентификаторы визуализаций
- •Приложение K: Ошибки и предупреждения компилятора
- •Предупреждения
- •Ошибки
Приложение D: Библиотеки CoDeSys
Приложение D: Библиотеки CoDeSys
Стандартная библиотека Standard.lib
Строковые функции
Внимание: В многозадачных проектах необходимо сосредоточить всю работу со строками в одной задаче. При одновременном вызове одной и той же строковой функции из нескольких параллельных процессов возможно нарушение ее работы (перекрытие данных).
LEN
Возвращает длину строки.
Аргумент STR типа STRING, возвращаемое значение типа INT.
Пример IL:
LD |
'SUSI' |
LEN |
|
ST |
VarINT1 (* Результат: 4 *) |
Пример FBD:
Пример ST:
VarSTRING1 := LEN (‘SUSI’);
LEFT
Возвращает левую значимую часть строки заданной длины.
Входная строка STR типа STRING, размер SIZE типа INT, возвращаемое значение STRING.
LEFT (STR, SIZE) означает: взять первых SIZE символов от строки STR.
Пример IL:
LD |
'SUSI' |
|
LEFT |
3 |
|
ST |
VarSTRING1 |
(* Результат ‘SUS’ *) |
Пример FBD:
Пример ST:
VarSTRING1 := LEFT (‘SUSI’,3);
RIGHT
Возвращает правую значимую часть строки заданной длины.
Входная строка STR типа STRING, размер SIZE типа INT, возвращаемое значение STRING.
CoDeSys V2.3 |
10-42 |
Приложение D: Библиотеки CoDeSys
RIGHT (STR, SIZE) означает: взять последних SIZE символов от строки STR
Пример IL:
LD |
'SUSI' |
RIGHT |
3 |
ST |
VarSTRING1 (*Результат: ‘USI’ *) |
Пример FBD:
Пример ST:
VarSTRING1 := RIGHT (‘SUSI’,3);
MID
Возвращает часть строки с указанной позиции указанной длины.
Входная строка STR типа STRING, размер LEN и POS типа INT, возвращаемое значение STRING.
MID (STR, LEN, POS) означает: вырезать LEN символов из STR строки, начиная с POS.
Пример IL:
LD |
'SUSI' |
|
RIGHT |
2,2 |
|
ST |
VarSTRING1 |
(* Результат: ‘US’ *) |
Пример FBD:
Пример ST:
VarSTRING1 := MID (‘SUSI’,2,2);
CONCAT
Конкатенация (объединение) двух строк.
Обе входных строки STR1 и STR2 как и результат типа STRING.
Пример IL:
LD |
'SUSI' |
CONCAT |
‘WILLI’ |
ST |
VarSTRING1 (* Результат: ‘SUSIWILLI’ *) |
Пример FBD:
Пример ST:
VarSTRING1 := CONCAT (‘SUSI’,’WILLI’);
CoDeSys V2.3 |
10-43 |
Приложение D: Библиотеки CoDeSys
Обратите внимание: Функция CONCAT не работает при более чем 5 вложениях.
INSERT
INSERT вставляет строку в указанную позицию другой строки.
Входные переменные STR1 и STR2 - типа STRING, POS - типа INT, возвращаемое значение -
строка STRING.
INSERT(STR1, STR2, POS) означает: вставить STR2 в STR1 в позиции POS.
Пример IL:
LD |
'SUSI' |
INSERT |
‘XY’,2 |
ST |
VarSTRING1 (* Результат: ‘SUXYSI’ *) |
Пример FBD:
Пример ST:
VarSTRING1 := INSERT (‘SUSI’,’XY’,2);
DELETE
DELETE удаляет часть строки с указанной позиции.
Входные переменные STR типа STRING, LEN и POS типа INT, возвращаемое значение строка
STRING.
DELETE(STR, L, P) означает: удалить L символов из STR, начиная с позиции P.
Пример IL:
LD |
'SUXYSI' |
|
DELETE |
2,23 |
|
ST |
Var1 |
(* Результат: ‘SUSI’ *) |
Пример FBD:
Пример ST:
Var1 := DELETE (‘SUXYSI’,2,3);
REPLACE
REPLACE заменяет часть строки другой строкой с указанной позиции заданной длины.
Входные переменные STR1 и STR2 типа STRING, LEN и POS типа INT, возвращаемое значение строка STRING.
CoDeSys V2.3 |
10-44 |
Приложение D: Библиотеки CoDeSys
REPLACE(STR1, STR2, L, P) означает: заменить L символов строки STR1 на STR2 начиная с позиции P.
Пример IL:
LD |
'SUXYSI' |
|
REPLACE |
'K', 2,2 |
|
ST |
VarSTRING1 |
(* Результат: ‘SKYSI’ *) |
Пример FBD:
Пример ST:
VarSTRING1 := REPLACE (‘SUXYSI’,’K’,2,2);
FIND
FIND ищет заданный контекст в строке.
Входные переменные STR1 и STR2 типа STRING, возвращаемое значение INT.
FIND(STR1, STR2) означает: найти позицию в строке STR1, где впервые встречается подстрока
STR2.
Нумерация позиций в строке начинается с 1. Если STR2 не найдена, STR1 возвращает 0.
Пример IL:
LD |
'SUXYSI' |
|
FIND |
'XY' |
|
ST |
VarINT1 |
(* Результат: ‘3’ *) |
Пример FBD:
Пример ST:
VarINT1 := FIND (‘SUXYSI’,’XY’);
Переключатели
SR
Переключатель с доминантой включения: Q1 = SR (SET1, RESET) означает:
Q1 = (NOT RESET AND Q1) OR SET1
Входные переменные SET1 и RESET - как и выходная переменная Q1 типа BOOL.
Пример объявления:
SRInst : SR ;
Пример IL:
CoDeSys V2.3 |
10-45 |
|
Приложение D: Библиотеки CoDeSys |
CAL |
SRInst(SET1 := VarBOOL1, RESET := VarBOOL2) |
LD |
SRInst.Q1 |
ST |
VarBOOL3 |
Пример FBD:
Пример ST:
SRInst(SET1:= VarBOOL1 , RESET:=VarBOOL2 );
VarBOOL3 := SRInst.Q1 ;
RS
Переключатель с доминантой выключения:
Q1 = RS (SET, RESET1) означает:
Q1 = NOT RESET1 AND (Q1 OR SET)
Входные переменные SET и RESET1 - как и выходная переменная Q1 типа BOOL.
Пример объявления:
RSInst : RS ;
Пример IL:
CAL |
RSInst(SET := VarBOOL1, RESET1 := VarBOOL2) |
LD |
RSInst.Q1 |
ST |
VarBOOL3 |
Пример FBD:
Пример ST:
RSInst(SET:= VarBOOL1 , RESET1:=VarBOOL2 );
VarBOOL3 := RSInst.Q1 ;
SEMA
Программный семафор.
BUSY = SEMA(CLAIM, RELEASE) означает: BUSY := X;
IF CLAIM THEN X:=TRUE;
ELSE IF RELEASE THEN BUSY := FALSE; X:= FALSE; END_IF
X - это внутренняя BOOL переменная, изначально имеющая значение FALSE.
CoDeSys V2.3 |
10-46 |
