Предисловие научного редактора 3
Введение 6
Предупреждения 10
Глава 1. Программируемые контроллеры 11
1.1. Определение ПЛК 11
1.2. Входы-выходы 14
1.3. Режим реального времени
и ограничения на применение ПЛК 15
1.4. Условия работы ПЛК 16
1.5. Интеграция ПЛК в систему управления предприятием 17
1.6. Доступность программирования 20
1.7. Программный ПЛК 20
1.8. Рабочий цикл 21
1.9. Время реакции 23
1.10. Устройство ПЛК 25
1.10.1. Системное и прикладное
программное обеспечение 27
1.10.2. Контроль времени рабочего цикла 27
Глава 2. Стандарт МЭК 61131 28
2.1. Открытые системы 28
2.2. Целесообразность выбора языков МЭК 29
2.3. Простота программирования
и доходчивое представление 30
2.4. Единые требования в подготовке специалистов 31
Глава 3. Инструменты программирования ПЛК 32
3.1. Комплексы проектирования МЭК 61131-3 32
3.2. Инструменты комплексов программирования ПЛК 35
3.2.1. Встроенные редакторы 36
3.2.2. Текстовые редакторы 36
3.2.3. Графические редакторы 37
3.2.4. Средства отладки 41
3.2.5. Средства управления проектом 44
3.3. Комплекс CoDeSys 46
3.4. Строение комплекса CoDeSys 48
Глава 4. Данные и переменные 50
4.1. Типы данных 50
4.2. Элементарные типы данных 51
4.2.1. Целочисленные типы 51
4.2.2. Логический тип 53
4.2.3. Действительные типы 54
4.2.4. Интервал времени 54
4.2.5. Время суток и дата 55
4.2.5. Строки 56
4.2.6. Иерархия элементарных типов 57
4.3. Пользовательские типы данных 57
4.3.1. Массивы 57
4.3.2. Структуры 59
4.3.3. Перечисления 61
4.3.4. Ограничение диапазона 62
4.3.5. Псевдонимы типов 62
4.3.6. Специфика реализации типов данных CoDeSys 63
4.4. Переменные 64
4.4.1. Идентификаторы 64
4.4.2. Распределение памяти переменных 65
4.4.3. Прямая адресация 66
4.4.4. Поразрядная адресация 68
4.4.5. Преобразования типов 69
4.5. Тонкости вычислений 70
4.6. Венгерская запись 74
4.7. Формат BCD 77
Глава 5. Компоненты организации программ (POU) 78
5.1. Определение компонента 78
5.1.1. Объявление POU 79
5.1.2. Формальные и актуальные параметры 80
5.1.3. Параметры и переменные компонента 81
5.2. Функции 82
5.2.1. Вызов функции
с перечислением значений параметров 83
5.2.2. Присваивание значений параметрам функции 84
5.2.3. Функции с переменным числом параметров 84
5.2.4. Операторы и функции 85
5.2.5. Перегрузка функций и операторов 86
5.2.6. Пример функции 86
5.2.7. Ограничение возможностей функции 88
5.2.8. Функции в логических выражениях 90
5.3. Функциональные блоки 91
5.3.1. Создание экземпляра функционального блока 91
5.3.2. Доступ к переменным экземпляра 92
5.3.3. Вызов экземпляра блока 93
5.3.4. Инициализация данных экземпляра 94
5.3.5. Тиражирование экземпляров 95
5.3.6. Особенности реализации
и применения функциональных блоков 96
5.3.7. Шаблонные переменные 97
5.3.8. Пример функционального блока 98
5.3.9. Действия 99
5.4. Программы 100
5.4.1. Использование программ 100
5.5. Компоненты в CoDeSys 100
Глава 6. Структура программного обеспечения ПЛК 103
6.1. Задачи 103
6.2. Ресурсы 105
6.3. Конфигурация 106
Глава 7. Языки МЭК 107
7.1. Проблема программирования ПЛК 107
7.1.1. ПЛК как конечный автомат 108
7.2. Семейство языков МЭК 111
7.2.1. Диаграммы SFC 111
7.2.2. Список инструкций IL 114
7.2.3. Структурированный текст ST 115
7.2.4. Релейные диаграммы LD 115
7.2.5. Функциональные диаграммы FBD 116
7.3. Язык линейных инструкций (IL) 117
7.3.1. Формат инструкции 117
7.3.2. Аккумулятор 118
7.3.3. Переход на метку 118
7.3.4. Скобки 119
7.3.5. Модификаторы 120
7.3.6. Операторы 120
7.3.7. Вызов функциональных блоков и программ 121
7.3.8. Вызов функции 122
7.3.9. Комментирование текста 122
7.3.10. IL в режиме исполнения 123
7.4. Структурированный текст (ST) 124
7.4.1. Выражения 124
7.4.2. Порядок вычисления выражений 124
7.4.3. Пустое выражение 125
7.4.4. Оператор выбора IF 126
7.4.5. Оператор множественного выбора CASE 127
7.4.6. Циклы WHILE и REPEAT 129
7.4.7. Цикл FOR 130
7.4.8. Прерывание итераций
операторами EXIT и RETURN 132
7.4.9. Итерации на базе рабочего цикла ПЛК 133
7.4.10. Оформление текста 134
7.5. Релейные диаграммы (LD) 136
7.5.1. Цепи 136
7.5.2. Реле с самофиксацией 138
7.5.3. Порядок выполнения и обратные связи 139
7.5.4. Управление порядком выполнения 140
7.5.5. Расширение возможностей LD 141
7.5.6. Особенности реализации LD в CoDeSys 142
7.5.7. LD-диаграммы в режиме исполнения 144
7.6. Функциональные блоковые диаграммы (FBD) 144
7.6.1. Отображение POU 144
7.6.2. Соединительные линии 146
7.6.3. Порядок выполнения FBD 146
7.6.4. Инверсия логических сигналов 146
7.6.5. Соединители и обратные связи 146
7.6.6. Метки, переходы и возврат 147
7.6.7. Выражения ST в FBD 148
7.7. Последовательные функциональные схемы (SFC) 149
7.7.1. Шаги 149
7.7.2. Переходы 149
7.7.3. Начальный шаг 151
7.7.4. Параллельные ветви 152
7.7.5. Альтернативные ветви 152
7.7.6. Переход на произвольный шаг 153
7.7.7. Упрощенный SFC 154
7.7.8. Стандартный SFC 157
7.7.9. Классификаторы действий 158
7.7.10. Действие — переменная 161
7.7.11. Механизм управления действием 162
7.7.12. Внутренние переменные шага и действия 165
7.7.13. Функциональные блоки и программы SFC 166
7.7.14. Отладка и контроль исполнения SFC 167
Глава 8. Стандартные компоненты 170
8.1. Операторы и функции 170
8.1.1. Арифметические операторы 170
8.1.2. Операторы битового сдвига 172
8.1.3. Логические битовые операторы 173
8.1.4. Операторы выбора и ограничения 174
8.1.5. Операторы сравнения 175
8.1.6. Математические функции 176
8.1.7. Строковые функции 177
8.2. Стандартные функциональные блоки 178
8.2.1. Таймеры 178
8.2.2. Триггеры 182
8.2.3. Детекторы импульсов 183
8.2.4. Счетчики 184
8.3. Расширенные библиотечные компоненты 185
8.3.1. Побитовый доступ к целым 186
8.3.2. Гистерезис 187
8.3.3. Пороговый сигнализатор 188
8.3.4. Ограничение скорости изменения сигнала 188
8.3.5. Интерполяция зависимостей 189
8.3.6. Дифференцирование 191
8.3.7. Интегрирование 193
8.3.8. ПИД-регулятор 195
Глава 9. Примеры программирования 200
9.1. Генератор импульсов (PRG LD) 200
9.2. Последовательное управление
по времени (PRG LD, SFC) 201
9.3. Кодовый замок (PRG LD) 203
9.4. Динамический знаковый индикатор
(FUN LD, ST) 205
9.5. Целочисленное деление
с симметричным округлением (FUN ST) 207
9.6. Генератор случайных чисел (FB ST) 210
9.7. Очередь FIFO (FB ST) 212
9.8. Быстрая очередь FIFO (FB ST) 214
9.9. Фильтр «скользящее среднее» (FB ST) 215
9.10. Медианный фильтр (FB ST) 217
9.11. Линеаризация измерений (PRG ST) 221
9.12. Широтно-импульсный
модулятор на базе таймера (FB IL) 224
9.13. Управление реверсивным приводом (FB SFC) 226
9.14. Сравнение языков с позиции минимизации
кода (IL, ST, FBD, LD. 231
9.14.1. Программирование
последовательности состояний (ST, IL) 232
9.14.2. Параллельное решение в виде
логических выражений (FBD, LD, ST, IL) 237
9.14.3. Функциональный блок против программы 241
Список литературы 242
Интернет-ссылки 245
Приложение
Перевод специальных терминов и сокращений 246