Илюхин В.Н. Программирование промышленных логических контроллеров «ОВЕН» в системе «CoDeSys» Конспект лекций по дисциплине «Средства электроавтоматики.

Презентация:



Advertisements
Похожие презентации
FBD В cреде CoDeSys Язык FBD Язык FBD (Functional Block Diagram, Диаграмма Функциональных Блоков) является языком графического программирования,
Advertisements

turbo.exe основной файл среды Любой язык обладает алфавитом, синтаксисом и семантикой. В алфавит входит набор символов, использующихся в языке с помощью.
Лекция 4 Программирование на Паскале. Элементы языка Турбо Паскаль 7.0. Типы данных. Управляющие конструкции.
Познакомиться с основными понятиями языка Pascal 2.
- - команды действия ; - - команды ожидания ; - - управляющие структуры ; - - модификаторы.
Среди современных языков программирования одним из самых популярных является язык Паскаль. Этот язык разработан в 1971 году и назван в честь Блеза Паскаля.
Учебный курс Объектно-ориентированный анализ и программирование Лекция 4 Трансформация логической модели в программный код Лекции читает кандидат технических.
«Типы данных». Целочисленные типы данных Тип ДиапазонТребуемая память (байт) byte shortint integer word longint
Date: File:System_VBSc_8.1 SIMATIC HMI Siemens AG All rights reserved. SITRAIN Training for Automation and Drives Гибкость.
Презентация к уроку по информатике и икт (9 класс) на тему: Презентация на тему "Основы Visual Basic"
Алфавит и словарь языка Паскаль Учитель информатики Абдулзагирова А.И.
Date: Filename:SCL_3e.1 SIMATIC S7 Siemens AG All rights reserved. Создание и вызов блоков.
Учитель информатики и ИКТ Кузнецова Aлёна Анатольевна МБОУ 121 Г.Екатеринбург.
Работу выполнили ученицы 9 «Б» класса Гордеева Татьяна и Шебаршова Рита.
Глава 6. УПРАВЛЯЮЩИЕ СТРУКТУРЫ Оператор присваивания Простой и составной операторы Условный оператор Оператор множественного выбора Оператор цикла с предусловием.
Переменные и операторы УРОК 2. Переменные ПЕРЕМЕННАЯ – ?... контейнер для хранения данных. Переменная имеет имя – это….? последовательность букв, цифр.
Составление программ Разработка программ в среде Турбо- Паскаль.
Алфавит и синтаксис языка программирования Visual Basic.
Язык программирования Delphi. Алфавит языка 53 буквы латинского алфавита и символ подчеркивания Цифры от 0 до 9 23 спец.символа
Язык релейных диаграмм(LD) Графический язык Программа состоит из схем Использовался для программирования практически всех классических ПЛК Удобен для программирования.
Транксрипт:

Илюхин В.Н. Программирование промышленных логических контроллеров «ОВЕН» в системе «CoDeSys» Конспект лекций по дисциплине «Средства электроавтоматики пневмо- и гидросистем» «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ имени академика С.П. КОРОЛЕВА»

Обучение эффективной разработке программного обеспечения контроллеров ОВЕН на CoDeSys Две основные составляющие: Изучение возможностей контроллеров ОВЕН Программирование контроллеров ОВЕН Цель

Программируемые логические контроллеры (ПЛК) Контроллеры ОВЕН Основные принципы стандарта МЭК Введение в CoDeSys Установка CoDeSys Языки и операторы стандарта МЭК Программные модули (POU) Содержание

Что такое библиотека? Стандартная библиотека Работа с вещественными числами Трассировка Язык Последовательных Функциональных Диаграмм (SFC) Работа с задачами и событиями Содержание

ОВЕН ПЛК 100, ПЛК 150 и ПЛК 154 ЛЕКЦИЯ 1

ПараметрПЛК 100ПЛК 150ПЛК 154 Общие характеристики Конструктивное исполнениеDIN-рейка, 105 мм Степень защиты IP, климатическое исполнение IP20, – ºС Напряжение питания =24 В ~220 В ~220 В Потребляемая мощность6 Вт (без нагрузки) Индикация передней панели светодиодная индикация питания, наличия связи со средой программирования и состояния дискретных входов и выходов Ресурсы Центральный процессор 32-x разрядный RISC-процессор 200 МГц на базе ядра ARM9 Объем оперативной памяти8 МБ Объем энергонезависимой памяти хранения программ и архивов 3 МБ Размер Retain-памяти4 кБ (до 16 кБ)

ПараметрПЛК 100ПЛК 150, ПЛК 154 Интерфейсы связи Интерфейсы l Ethernet 10/100 Мbit l RS-485 l RS-232 – 2 шт. l USB-Device l Ethernet 10/100 Мbit l RS-485 l RS-232 Скорость обмена по интерфейсам RS-485 и RS- 232 настраиваемая, до bps Протоколы l ОВЕН l Modbus RTU, Modbus ASCII l DCON l Modbus TCP l GateWay (протокол CoDeSys) Программирование Среда программированияCoDeSys Rus Размер пользовательской программы ограничен только размерами свободной памяти (около 1 млн. инструкций) Интерфейс для программирования и отладки RS-232, Ethernet, USB Device для ПЛК100 Подключение при программировании стандартным кабелем или кабелем, входящим в комплект поставки

ПараметрПЛК 100ПЛК 150ПЛК 154 Дискретные выходы Количество дискретных выходов варианты исполнения: 6 э/м реле (220 В 8 А) 12 транзист. ключей 4 э/м реле (220 В 4 А) Гальваническая развязка дискретных выходов 1,5 кВ Аналоговые выходы Количество аналоговых выходов нет24 Тип выходного сигнала– варианты исполнения: 0(4)…20 мА 0…10 В универсальный: 4…20 мА или В (переключаемый тип выходного сигнала) Встроенный источник питания аналоговых выходов – есть, гальванически развязанный (1,5 кВ) от остальной схемы

ПараметрПЛК 100ПЛК 150ПЛК 154 Дискретные входы Количество дискретных входов 864 Гальваническая развязка дискретных входов на 1,5 кВ, групповая Максимальная рабочая частота дискретного входа до 10 кГц Аналоговые входы Количество аналоговых входов нет4 Предел основной приведенной погрешности –0,5 % Типы поддерживаемых датчиков и входных сигналов – термосопротивления Pt1000, Ni1000, Pt100, Сu50 (2-х проводная схема) ток 0(4)...20 мА, мА напряжение В, В термопары J, K, L и т.д. Подключение датчиков тока и напряжения осуществляется напрямую и не требует согласующих резисторов

ЛЕКЦИЯ 2

Что такое CoDeSys? Инструмент программирования Инструмент отладки Инструмент тестирования Инструмент создания визуализаций Инструмент документирования проектов CoDeSys –пакет для создания программного обеспечения для ПЛК в соответствии со стандартом МЭК

Определяет принципы программирования ПЛК Включает хорошо известные и современные языки программирования Позволяет разработчику не зависеть от производителя системы программирования Повторное использование кода Стандарт является международным Основные принципы стандарта МЭК

Структуру проекта Синтаксис и семантику 5 различных языков программирования: IL, FBD, LD, ST и SFC Типы строительных блоков проекта (POU): функции, программы и функциональные блоки Правила объявления и типы переменных Что определяет стандарт МЭК

Состоит из двух частей : системы программирования и системы исполнения. Система программирования состоит из: - редактора, компилятора и отладчика МЭК проектов; - поддерживает все 5 языков программирования МЭК; - генерирует машинный код для довольно широкого набора процессоров. Система исполнения реализует: - управляющий цикл с обновлением входов/выходов; - связь с системой программирования; - загрузку приложения после включения питания контроллера. Введение в CoDeSys

Инсталляция CoDeSys с компакт диска или с сайта Инсталляция файлов целевой платформы Инсталляция CoDeSys

Главное меню и панель инструментов Область определения переменных Редактор Менеджер объектов Окно сообщений Строка статуса Первый запуск CoDeSys

Desktop Editor Load & Save Directories Наиболее используемые опции CoDeSys

Справочная система Содержит ту же информацию, что и документация по CoDeSys Индекс по ключевым словам Поиск по тексту Русифицирована

Проект POUТипы данных Ресурсы Объявление переменных Код Глобальные переменные Библиотеки HMI Структура проекта

POU Типы данных Ресурсы HMI Структура проекта

Что такое проект в CoDeSys ? …хранится в одном файле (name.pro) …содержит программные компоненты (POU), визуализации, ресурсы и т.д.... выполнение приложения начинается с POU PLC_PRG(аналог функции main ) … выполняется циклически

Что такое POU ? POU (Program organisation unit) –это программный модуль POU PLC_PRG вызывается неявно системой исполнения Стандарт МЭК определяет 3 типа POU Программы Функциональные блоки Функции

Главная программа PLC_PRG: Для однозадачных систем программа PLC_PRG соответствует OB1 в системах S5/7. Эта программа вызывается циклически системой исполнения

Target Settings Создание главной программы PLC_PRG Автоматическое объявление Первый проект (Инкремент переменной)

В МЭК определенны следующие типы данных: Ключевое словоДиапазонПример BOOL 0, 1FALSE, TRUE, 0, 1 SINT, INT, DINT , , , USINT, UINT, UDINT , , , BYTE, WORD, DWORD , , #2102 REAL, LREAL -1.2x x x x E-15 TIME, TOD, DATE, DT 0 ms h2m47s295ms 00:00: :59: до T#1d8h12m8s125ms TOD#12:34:17 D# DT# :17:03 STRING символов`Emergency Stop` Стандартные типы данных

3 метода объявления переменных Локальные (для 1 ФБ) или Глобальные (для всех ФБ) текстовый, табличный и автоматический Сохраняемые и постоянные переменные Представление данных в CoDeSys

Синтаксис идентификаторов Буквы и цифры Должен начинаться с буквы Только одинарные подчеркивания Без пробелов Нельзя использовать зарезервированные слова МЭК и операторы Регистр не различается Примеры –Otto, otto, OTTO -Valve1 -a_long_name

Основные команды режима Online

(в ОВЕН ПЛК) Запустить систему исполнения Выключить режим эмуляции Настроить параметры связи Запуск приложения в целевой платформе

Языки МЭК Список инструкций (IL) Структурированный текст (ST) Язык функциональных блоковых диаграмм (FBD) Язык релейных диаграмм (LD) Язык последовательных функциональных схем (SFC)

Список инструкций (IL) Текстовый язык Схож с ассемблером Все операции производятся через аккумулятор Легко читается в случае небольших программ Не поддерживает структурного программирования ЛЕКЦИЯ 3

Структурный текст (ST) Текстовый язык Язык высокого уровня Схож с Паскалем Лучший язык для программирования циклов и условий (IF, WHILE, FOR, CASE)

Язык релейных диаграмм(LD) Графический язык Программа состоит из схем Использовался для программирования практически всех классических ПЛК Удобен для программирования логических выражений Сложно использовать для работы с аналоговыми типами данных Переключение между FBD и LD

Язык функциональных блоковых диаграмм (FBD) Графический язык Программа состоит из нескольких схем Легко читается Каждая схема состоит из блоков и операндов Непрерывные функциональные схемы (CFC) Схож с FBD, но… Блоки и соединители располагаются свободно Разрешаются циклы и свободные соединения

Язык функциональных блоковых диаграмм (FBD) [Выход] [Блок] [Присваивание] [Переход] [Возврат] [Инверсия] [Добавление входа] [Установка/Сброс] [Выход] [Выход] [Установка/Сброс]

Язык последовательных функциональных схем(SFC) Графический язык Используется для структурирования приложений Состоит из шагов и переходов Действия выполняются внутри шагов Не конвертируется в другие языки CoDeSys поддерживает два типа SFC Подробнее будет рассмотрен завтра ! ЛЕКЦИЯ 4

Упражнение 2. Управление освещением в длинном коридоре Есть длинный коридор. Для управления освещением в коридоре используется три переключателя: Msw- главный переключатель Bsw – переключатель в начале коридора. Esw – переключатель в конце коридора.

Упражнение 2. Управление освещением в длинном коридоре Подача питания в коридор осуществляется с помощью переключателя Msw. Необходимо решить задачу включения/выключения света с помощью любого из двух переключателей Bsw и Esw, установленных в разных концах коридора. Т.е. при входе в коридор с одной стороны необходимо переключить Bsw, чтобы зажечь свет. На выходе с другой стороны коридора необходимо переключить Esw, чтобы свет погас. И наоборот.

Через ресурс PLC-configuration %QX0.7 := (%IX0.3 AND %IX3.7) OR %IX3.0;Прямая адресация Например: %QX0.7 := (%IX0.3 AND %IX3.7) OR %IX3.0; Input AT %IX0.7 : BOOL;Присвоение адресам имен Например: xInput AT %IX0.7 : BOOL; Конфигурирование входов/выходов

Синтаксис адресов Обозначаются знаком % Тип адреса определяется префиксом –Iвход –Qвыход –Mмаркер Тип данных –Xбит –Noneбит –Bбайт (8 бит) –Wслово (16 бит) –Dдвойное слово (32 бит) Примеры - %IW215 - %QX1.1 - %MD48

Области памяти Входы Выходы Маркированная память %IB0 %IB1 %IB2 %IB3 %IW0 %IW1 %ID0 %IX0.0 %IX0.1 %IB0: %IX %IX0.7 %IX0.8 %IX0.9 %IB1: %IX0.15 Входные драйверы Выходные драйверы Физические входы Физические выходы

CoDeSys поддерживает все операторы МЭК Оператор присваивания Битовые операторы Сдвиговые операторы Операторы сравнения Числовые операторы Работа с действительными числами Логарифмические операторы Тригонометрические операторы Операторы выбора Операторы в CoDeSys

Используются для работы со всеми типами данных Оператор ILFBDLDST LD / ST LD A ST X A X X := A; LDN / ST LDN A ST X A-o X A X / X := NOT(A); LD / S LD A S X A [S]-X A X S IF A THEN X := TRUE; END_IF LD / R LD A R X A [R]-X A X R IF A THEN X := FALSE; END_IF Операторы присваивания

Битовые операторы Используются для работы с двоичными типами данных (BOOL, BYTE, WORD, DWORD) Оператор ILFBDLDST NOT LD A STN X NOT A- -X A X / X := NOT(A); AND LD A AND B ST X AND A- -X B- A B X X := A AND B; OR LD A OR B ST X OR A- -X B- A X B X := A OR B; XOR LD A XOR B ST X XOR A- -X B- A B X / A B / X := A XOR B;

Сдвиговые операторы (1) Используются для работы с двоичными типами данных (BOOL, BYTE, WORD, DWORD) Оператор ILFBDLDST SHL LD A SHL 1 ST X SHL A- -X 1- SHL EN A- -X 1- X := SHL(A, 1); SHR LD A SHR 4 ST X SHR A- -X 4- SHR EN A- -X 4- X := SHR(A, 4); ROL LD A ROL 4 ST X ROL A- -X 3- ROL EN A- -X 3- X := ROL(A, 3); ROR LD A ROR 1 ST X ROR A- -X 1- ROR EN A- -X 1- X := ROR(A, 1);

Сдвиговые операторы (2) SHL (сдвиг влево) SHR (сдвиг вправо) ROL (цикл. сдвиг влево) ROR (цикл. сдвиг вправо) adcbehgf bedcf0hga adcbehgf bedcfahg adcbehgf 0cbadgfeh adcbehgf hcbadgfe

Операторы сравнения Оператор ILFBDLDST EQ LD A EQ B ST X EQ A- -X B- EQ EN A- -X B- X := (A = B); NE LD A NE B ST X NE A- -X B- ( аналогично ) X := (A B); GE LD A GE B ST X GE A- -X B- (аналогично ) X := (A >= B); GT LD A GT B ST X GT A- -X B- (аналогично ) X := (A > B); LE LD A LE B ST X LE A- -X B- (аналогично ) X := (A

Арифметические операторы Оператор ILFBPLDST ADD LD A ADD 1 ST X ADD A- -X 1- ADD EN A- -X 1- X := A + 1; SUB LD A SUB 4 ST X SUB A- -X 4- SUB EN A- -X 3- X := A - 4; MUL LD A MUL B ST X MUL A- -X B- MUL EN A- -X B- X := A * B; DIV LD A DIV 8 ST X DIV A- -X 8- (аналогично) X := A / 8; MOD LD 12 MOD 8 ST X MOD 12- -X 8- (аналогично) X := 12 MOD 8; ( Result = 4 ) ( не исп. для REAL ) Выполняют алгебраические операции над целыми числами и числами с плавающей запятой

Вход ПЛК Внешний сенсор Внутренний сенсор ЛАМПА Упражнение 3. Управление освещением в комнате Цель - свет должен быть выключен, когда в комнате никого нет!

Упражнение 3. Управление освещением в комнате На входе установлены два дискретных датчика: один снаружи комнаты, другой внутри. Когда срабатывает сначала внешний датчик, затем внутренний, это означает, что человек зашел в комнату. Когда срабатывает сначала внутренний датчик, затем внешний, это означает, что человек вышел из комнаты. Задача1: Если человек вошел – включить свет, Если человек вышел – выключить свет. Задача2: Необходимо считать количество людей, заходящих и выходящих из комнаты. Пока в комнате остается хотя бы один человек, свет должен быть включен.

Визуализация Доступ ко всем данным проекта Графическое отображение логических и численных значений Ввод логических и численных значений Перемещение графических объектов ЛЕКЦИЯ 5

Инструменты визуализации v CoDeSys Разработка и выполнение CoDeSys HMI Операционная версия ПЛК визуализация CoDeSys Web визуализация

Функция: Имеет один или более входов, один выход, рекурсии не допустимы Функциональный блок: Имеет произвольное число входов и выходов. Имеет внутреннюю память. Для каждого функционального блока можно объявить несколько экземпляров Программа: Подобна функциональному блоку, но имеет один глобальный экземпляр Типы POU

Функция Не имеет внутренней памяти Локальные переменные инициализируются при каждом вызове Функция возвращает значение, через свой идентификатор.Функция имеет тип! Удобна для реализации комплексных вычислений Не рекомендуется использование глобальных переменных в функции

Функциональный блок Все переменные функционального блока сохраняют значения При создании экземпляра функционального блока создается новая копия переменных функционального блока. Копия кода функционального блока не создается. Рекомендуется для программирования повторно используемого кода, например, счетчиков, таймеров, триггеров и т.д.

Программа Все переменные сохраняют свои значения Используется для структурирования приложения

Вызов POU ФункцияФБПрограмма Пример Function Fun1:INT 3 входа (INT): A, B, C Переменная Result (int) Function_Block FunBlck1 3 входа (INT): A, B, C 2 выхода (INT): D, E Экземпляр: Instance1 Program Prgr1 3 входа (INT): A, B, C 2 выхода (INT): D, E IL LD 5 Fun1 3,2 ST Result CAL Instance1(A:=5, B:=3, C:=2)... LD Instance1.D ST Result1 LD Instance1.E ST Result2 CAL Prgr1(a := 5, b := 3, c := 2)... LD Prgr1.D ST Result1 LD Prgr1.E ST Result2 ST Result:=Fun1(5,3,2); или Result:=Fun1(A:=5,B:=3,C:=2); Instance1(A:=5, B:=3, C:=2, D => Result1, E => Result2); или Result1:=Instance1.D; … Prgr1(A := 5, B := 3, C := 2, D => Result1, E => Result2); или Result1:= Prgr1.D; … LD FBD CFC

Упражнение 4. Работа с программными компонентами CoDeSys (POU) Функция расчета мощности постоянного тока по напряжению и сопротивлению Счетчик положительных фронтов дискретного сигнала Вызов функций и функциональных блоков из программы

Упражнение 5. Система пожарной сигнализации здания

В здании две одинаковые комнаты. В каждой комнате установлено три пожарных датчика, кнопка ручного включения сигнализации и кнопка ручного отключения сигнализации. Для каждой комнаты предусмотрена сигнальная лампа. Сигнализация пожара является общей для обеих комнат. Если в комнате срабатывает хотя бы один из датчиков, то загорается сигнальная лампа для соответствующей комнаты. Лампа гаснет, если все датчики в комнате отключены. Если в комнате срабатывает любые два из трех датчиков, то включается пожарная сигнализация. Сигнализация работает до тех пор, пока ее не отключат соответствующей кнопкой. Сигнализация может быть включена кнопкой включения вне зависимости от состояния датчиков.

Сложные типы данных Массив abList : ARRAY[0..31] OF BOOL; Структура TYPE SetType : STRUCT iCount: INT; rValue: ARRAY[0..9] OF REAL; END_STRUCT END_TYPE Перечисление TYPE ColorType : ( RED, YELLOW, GREEN, BLUE ); END_TYPE Псевдоним TYPE Message : STRING(40); END_TYPE

Предопределенные блоки (Библиотеки) Библиотека состоит из объектов, которые могут быть использованы в различных проектах Пользователь может создавать и использовать собственные библиотеки. Можно создавать библиотеки с защитой. Библиотеки могут быть написаны не только на МЭК, но и на других языках программирования Библиотека standard.lib содержит POU описанные в стандарте МЭК

Стандартная библиотека Функции работы со строками Детекторы фронтов Счетчики Таймеры

Функции работы со строками LENLEN LEFTLEFT RIGHTRIGHT MIDMID CONCATCONCAT INSERTINSERT DELETEDELETE REPLACEREPLACE FINDFIND

Детекторы фронтов R_TRIG определяет передний фронт F_TRIG определяет задний фронт t Входной сигнал Выходной сигнал t Входной сигнал Выходной сигнал

Счетчики CTU Инкрементируется по переднему фронту CTD Декрементируется по переднему фронту CTUD Инкрементируется или декрементируется по разным входам

Временные типы данных МЭК ТипОписание Пример TIME Используются для выражения интервалов времени T1:=T#5h45m10s9ms T2:=T#100ms DATE Используются для выражения даты DATE# d# TIME_OF_DAY Используются для выражения времени дня TIME_OF_DAY#15:36: tod#00:00:00 DATE_AND_TIME Используются для выражения даты и времени дня DATE_AND_TIME# :36:30 dt# :00:00

Часы реального времени RTC

Генерирует импульс заданной длительности Таймер TP

Включает выход с задержкой по переднему фронту Таймер TON

Выключает выход с задержкой по заднему фронту Таймер TOF

Упражнение 6. Работа с элементами стандартной библиотеки Реализовать задачу управления светом комнате (упражнение 3) с помощью компонентов стандартной библиотеки. Свет должен выключаться через 5 секунд, после того как последний человек покинет комнату.

Операторы для работы с числами с плавающей запятой Оператор ILFBDLDST ABS LD A ABS ST X ABS A- -X ABS EN A- -X X := ABS(A); ( Result = 12 ) ( if A = ) TRUNC LD A TRUNC ST X TRUNC A- -X TRUNC EN A- -X X := TRUNC(A); ( Result = 4 ) ( if A = 4.32 ) EXPT LD A EXPT 3 ST X EXPT A- -X 3- EXPT EN A- -X 3- X := EXPT(A,3); ( Result = 8 ) ( if A = 2 ) SQRT LD A SQRT ST X SQRT A- -X SQRT EN A- -X X := SQRT(A); ( Result = 5 ) ( if A = 25 )

Логарифмические операторы Вычисление логарифмов и экспоненты Оператор ILFBDLDST EXP LD A EXP ST X EXP A- -X EXP EN A- -X X := EXP(A); ( Result = ) ( if A = 2 ) LN LD A LN ST X LN A- -X LN EN A- -X X := LN(A); ( Result = 2 ) ( if A = ) LOG LD A LOG ST X LOG A- -X LOG EN A- -X X := LOG(A); ( Result = 3 ) ( if A = 1000 )

Тригонометрические операторы Оператор ILFBDLDST SIN LD A SIN ST X SIN A- -X SIN EN A- -X X := SIN(A); ASIN LD A ASIN ST X ASIN A- -X ASIN EN A- -X X := ASIN(A); COS LD A COS ST X COS A- -X COS EN A- -X X := COS(A); ACOS LD A ACOS ST X ACOS A- -X ACOS EN A- -X X := ACOS(A); TAN LD A TAN ST X TAN A- -X TAN EN A- -X X := TAN(A); ATAN LD A ATAN ST X ATAN A- -X ATAN EN A- -X X := ATAN(A);

Предназначены для ограничения и выбора операндов Используются с любыми типами данных Оператор ILFBDLDST MIN LD A MIN B ST X MIN A- -X B- MIN EN A- -X B- X := MIN(A,B); MAX LD A MAX 1 ST X MAX A- -X 1- ( как выше ) X := MAX(A,1); LIMIT LD -8 LIMIT A,5 ST X LIMIT -8- -X A- 5- ( как выше ) X := LIMIT(-8,A,5); X = -8 if A 5 SEL LD A SEL 10,B ST X SEL A- -X 10- B- ( как выше ) X := SEL(A,10,B); X = 10 if A is FALSE X = B if A is TRUE MUX LD A MUX 0,10,B ST X MUX A- -X B- ( как выше ) X := MUX(A,0,10,B); X = 0 if A is 0 X = 10 if A is 1 X = B if A is 2 Операторы выбора

Для каждой пары типов данных используется отдельная функция Операторы преобразования типов данных

Упражнение 7. Генератор синусоиды Операции с вещественными числами Преобразование типов Первое знакомство с трассировкой

Язык Последовательных Функциональных диаграмм (SFC) Графический язык Управление последовательностью выполнения действия Состоит из шагов, действий и переходов Помогает структурировать приложение В CoDeSys есть упрощенная версия SFC

Упражнение 8. Управление сверлильным станком Станок производит сверление отверстий в заготовках по заданной программе: запуск станка, опускание сверла, сверление по одному из выбранных режимов, подъем сверла. На станке предусмотрена кнопка запуска, тумблер выбора режима сверления, кнопка останова сверления. Контроллер подает три управляющие команды: опускание сверла, подъем сверла, сверление. Предусмотрено два режима: либо сверление производится в течение 5 секунд (автоматический режим), либо сверление производится до нажатия оператором кнопки останова сверления. Режим выбирается с помощью тумблера выбора перед запуском станка.

Упражнение 8. Управление сверлильным станком Перед началом работы оператор с помощью тумблера выбора определяет режим сверления. После нажатия оператором кнопки запуска контроллер начинает управление станком. Подается команда опустить сверло и начинается обратный отсчет координаты. При достижении нижней точки (y=0) снимается команда на опускание и подается команда на сверление. Если выбран первый режим, то команда сверления снимается через 5 секунд. Если выбран второй режим, то команда сверления снимается после нажатия оператором кнопки останова сверления. Затем контролер подает команду на подъем сверла и начинает прямой отсчет координаты. После достижения верхнего положения (y=70) команда подъема снимается.

Упражнение 8. Управление сверлильным станком

Конфигурирование задач Задачи выполняются по событию или циклически Имеют приоритет Вызывают программы Есть свободно-выполняемые задачи(аналог idle)

Упражнение 9. Работа с конфигуратором задач Создать циклическую задачу Создать задачу, выполняемую по событию Создать свободно-выполняемую задачу Создать программы – счетчики числа запусков задач Проследить за выполнением свободно-выполняемой задачи, изменяя параметры других задач