Uploaded by vika.shd

ПЛК2хх

advertisement
Содержание
Создание и загрузка проекта в ПЛК1xx (CODESYS V2.3) ........................................................................................................................ 2
Создание и загрузка проекта в ПЛК2xx / СПК1xx (CODESYS V3.5) ........................................................................................................ 3
Горячие клавиши ........................................................................................................................................................................................ 4
Правила задания имен переменных/программ/компонентов ........................................................................................................... 5
Работа с физическими входами и выходами.......................................................................................................................................... 6
Переменные ................................................................................................................................................................................................ 7
Добавление библиотеки ........................................................................................................................................................................... 9
Подключение модулей ввода / вывода Mx110 по интерфейсу RS-485 ............................................................................................ 10
Алгоритм настройки модулей Mx110 в Конфигураторе М110 ...................................................................................................... 10
Добавление модулей Mx110 в CODESYS V2.3 .................................................................................................................................. 11
Добавление модулей Mx110 в CODESYS V3.5 .................................................................................................................................. 12
Подключение модулей ввода / вывода Mx210 по интерфейсу Ethernet ......................................................................................... 13
Алгоритм настройки модулей Mx210 в программе OWEN Configurator...................................................................................... 13
Добавление модулей Mx210 в CODESYS V2.3 .................................................................................................................................. 14
Добавление модулей Mx210 в CODESYS V3.5 .................................................................................................................................. 14
Основные функции и регистры модулей линеек Mx110 и Mx210..................................................................................................... 15
Таблица разбиения регистров на биты ................................................................................................................................................. 16
Каналы Modbus Slave (для универсального slave-устройства) в CODESYS V3.5 ............................................................................... 17
Подключение СП3xx к ПЛК1xx по интерфейсу RS-485 ......................................................................................................................... 19
Настройка ПЛК как slave-устройства в CODESYS V2.3 ..................................................................................................................... 19
Алгоритм настройки СП3xx и создания визуализации в программе Конфигуратор СП300 ...................................................... 20
Основные графические элементы Конфигуратора СП300 ............................................................................................................. 20
Создание визуализации в CODESYS V3.5 ............................................................................................................................................... 21
Основные графические элементы в CODESYS V3.5 ......................................................................................................................... 21
Спецификаторы .................................................................................................................................................................................... 22
Отображение временных типов данных на визуализации ............................................................................................................ 22
WEB-визуализация ............................................................................................................................................................................... 23
Программные компоненты POU (Program Organization Unit) ............................................................................................................ 24
Список элементов .................................................................................................................................................................................... 26
FBD операторы (cds 2.3) / Ключевые слова (cds 3.5):...................................................................................................................... 26
Дискретная логика (логические битовые операторы) .............................................................................................................. 26
Арифметические операторы ......................................................................................................................................................... 26
Операторы сравнения ................................................................................................................................................................... 27
Операторы выбора и ограничения .............................................................................................................................................. 28
Стандартные функциональные блоки .............................................................................................................................................. 29
Библиотека STANDARD.lib ............................................................................................................................................................. 29
Библиотека UTIL.lib......................................................................................................................................................................... 31
Основные операции, используемые в языке ST .................................................................................................................................. 33
1
Создание и загрузка проекта в ПЛК1xx (CODESYS V2.3)
При создании проекта в CODESYS V2.3 необходимо:
1. Запустить программу CODESYS V2.3
2. Файл – Создать
3. Выбрать конфигурацию (target-файл):
4. Выбрать язык реализации: CFC (Базовый курс) / ST (Продвинутый курс)
5. Время цикла – 10 ms
6. Файл – Сохранить как… (обязательно для функции автосохранения)
При загрузке проекта в плк1xx в CODESYS V2.3 необходимо:
1. Расставить порядок шагов в коде программы
(ПКМ на рабочем поле – Порядок – В соответствии с потоком данных)
2. Проверить на наличие ошибок (Меню «Проект» - Компилировать F11)
3. Онлайн – Подключение
4. Онлайн – Старт (F5)
Для дальнейшего редактирования проекта:
5. Онлайн - Отключение
2
Создание и загрузка проекта в ПЛК2xx / СПК1xx (CODESYS V3.5)
При создании проекта в CODESYS V3.5 необходимо:
1. Запустить программу CODESYS V3.5 SPX Patch X
(ПО ПЛК периодически обновляется, соответственно и используемая версия CODESYS тоже)
2. Основные операции – Новый проект…
3. Выбрать шаблон проекта*:
- EDUCATION PLC210-02
(для курса ПЛК2xx Базовый)
- EDUCATION SPK
(для курса СПК1xx Базовый)
- SPK1xx
(для курса СПК1xx Визуализация)
*шаблон проекта содержит:
- target-файл
- программу PLC_PRG
(Шаблоны EDUCATION используют язык
реализации CFC,
остальные: PLC2xx, SPK1xx – язык
реализации ST)
- визуализацию
- необходимые библиотеки
и прочее
4.
Задать имя проекта и расположение:
5.
После создания проекта необходимо установить связь с ПЛК2xx / SPK1xx
- Компонент Device – Сканировать сеть – Из списка выбрать необходимое устройство
- Убедиться, что появилась информация об устройстве и индикация 2х зелёных ламп:
При загрузке проекта в ПЛК1xx в CODESYS V3.5 необходимо:
1. Расставить порядок шагов в коде программы
(ПКМ на рабочем поле – Порядок выполнения – Упорядочить в соответствии с потоком
данных)
2. Проверить на наличие ошибок (Меню «Компиляция» - Компилировать F11)
3. Онлайн – Логин
4. Отладка – Старт (F5)
Для дальнейшего редактирования проекта:
5. Онлайн - Отключение
3
Горячие клавиши
Загрузка и отладка проекта:
F11 – Компиляция (проверка на ошибки)
Alt + F8 – Подключение / Логин
F5 – Запуск программы (Старт)
Ctrl + F7 – Записать значение (работает в режиме Отладки)
Ctrl + F8 – Отключение
Точка останова (работает в режиме Отладки):
F9 – Точка останова. Необходимо в подключенном состоянии выделить блок и нажать F9
(также с помощью этой кнопки можно удалить точку останова)
F8 – Позволяет перейти на следующий шаг (детально, заходя в каждый блок)
F10 – Позволяет перейти на следующий шаг (поверху, не заходя в каждый блок)
Прочие:
F1 – Вызов справки
Для того чтобы вызвать справку для конкретного элемента, необходимо выделить его название
и нажать F1.
F2 – Ассистент ввода
Чтобы его вызвать, необходимо выделить:
- имя блока «AND» (CODESYS V2.3)
- знаки «???»
(CODESYS V3.5)
и нажать F2. Помогает быстро и безошибочно вызвать любой блок или присвоить ранее
объявленную переменную
Shift + F2 – Автообъявление (локальной переменной)
Ctrl + O – Открыть проект…
Ctrl + S – Сохранение
Ctrl + Z – Отменить
Ctrl + X, Ctrl + C, Ctrl + V – Вырезать, Копировать, Вставить
Ctrl + A – Добавить дополнительный вход блоку (только для CODESYS V2.3)
4
Правила задания имен переменных / программ / компонентов
‣
Регистр букв не различается
‣
Только латиница, можно использовать цифры
‣
Имя должно начинаться с буквы (in1, но не 1in)
‣
Без знаков препинания и пробелов, допускаются только одинарные подчеркивания
‣
Нельзя использовать зарезервированные слова МЭК и операторы (AND, VAR, WORD,
PROGRAM и т.д.)
5
Работа с физическими входами и выходами
ПЛК110-30
Вкладка Ресурсы – Конфигурация ПЛК
INPUTS – входы
OUTPUTS – выходы
Для использования их в программе, необходимо нажать на символы «AT» дважды и задать имя
согласно правилам задания имен. Таким переменные принято считать глобальными, поскольку
они связаны с физическими входами и выходами ПЛК.
ПЛК2xx / СПК1xx
В CODESYS 3.5 чтобы использовать физические входы / выходы необходимо предварительно
создавать переменные в программе:
Затем привязать в компонентах:
LeftSide / RightSide для ПЛК210:
Модуль МК для СПК107:
6
Переменные
Тип данных
Диапазон
Пример
Логический
BOOL
FALSE, TRUE
FALSE, TRUE
Целый со знаком
INT
-32768 .. 32767
-5, 0, 24453
Целый беззнаковый
UINT
0 .. 65535
1, 44, 333
С плавающей точкой
REAL
Строковый
STRING
WSTRING
-38
-1.2x 10
38
.. 3.4x 10
1 .. 255 символов
1.34996, -100.78
‘Stop’
“Авария”
Целый беззнаковый (слово)
WORD
0 .. 65535
0, 845, 2578
Временной
TIME
t#0s..t#49d17h2m47s295ms
t#1d12h3m4s
Переменные объявляются при помощи сочетания клавиш Shift+F2, или вручную в окне
объявления переменных (верхнее окно) по формуле:
ИМЯ : ТИП;
Для задания начального значения можно воспользоваться формулой
ИМЯ : ТИП := НАЧАЛЬНОЕ ЗНАЧЕНИЕ ;
Для добавления комментария
ИМЯ : ТИП; //комментарий
(только CODESYS V3.5)
ИМЯ : ТИП; (*комментарий*)
Для создания энергонезависимой переменной необходимо использовать отдельный класс
переменных VAR RETAIN. При создании переменной его можно выбрать в окне Автообъявления:
7
Пример объявления в CODESYS V2.3:
Пример объявления в CODESYS V3.5:
Строковый вид
Табличный вид
Константы типа TIME в CODESYS: T#5h2m20s120ms (d –дни).
Регистр значения не имеет (t#)
При объявлении переменной типа TIME:
1! Пропускать разряды можно, но главное - расположить их от старшего к младшему, без
пробелов
2! Не переполнять разряды (старший разряд может выходить за пределы, младший нет)
3. Желательно задавать начальное значение переменной (не нулевое)
8
Добавление библиотеки
CODESYS V2.3:
CODESYS V3.5:
- В Менеджере библиотек нажать кнопку Добавить библиотеку.
- Ввести название нужной библиотеки, выбрать ее и нажать ОК.
! Версия библиотеки не должна быть выше используемой версии CODESYS
9
Подключение модулей ввода / вывода Mx110 по интерфейсу RS-485
Master
slave
slave
ПЛК
МВ110
МК110
RS-485-1
RS-485
ПК
USB
АС4-M
Основные сетевые настройки slave-устройства:
1. Протокол передачи данных (Modbus RTU/ASCII), текущая модификация модулей определяет
его автоматически
2. Скорость передачи данных (9600..115200 bit/sec)
3. Адрес slave-устройства (1..240)
Перед подключением модулей 110 линейки, их необходимо настраивать в программе
Конфигуратор М110 строго по одному.
Алгоритм настройки модулей Mx110 в Конфигураторе М110
1. Подключить модуль к ПК через преобразователь интерфейсов АС4-М
2. Запустить Конфигуратор М110
3. Задать текущие параметры модуля (скорость, адрес), при необходимости уточнить номер
COM-порта в Диспетчере устройств
4. Установить связь
5. Перенастроить модуль на необходимые настройки
6. При необходимости настроить типы входов / выходов, провести их опрос
7. Меню «Прибор» - «Записать только измененные»
8. Выйти из программы
9. Перезапустить модуль
10
Добавление модулей Mx110 в CODESYS V2.3
1.
2.
3.
4.
Ресурсы – Конфигурация ПЛК
PLC110_30 (ПКМ*) – Добавить Подэлемент – ModBus (Master)
ModBus (Master) – Debug RS-232 (ПКМ) – Заменить элемент – RS-485-1
RS-485-1 – Вкладка «Параметры модуля» - Установить скорость, при необходимости
протокол
5. ModBus (Master) (ПКМ) – Добавить Подэлемент – Universal ModBus device (2 штуки для
каждого модуля), рекомендуется добавить комментарий
6. Universal ModBus device – Вкладка «Параметры модуля» - Установить адрес, режим опроса:
а) МВ – by poll time, 500 ms
б) МК – both, 100 ms
7. Далее в Universal ModBus device (ПКМ) для каждого модуля добавляем каналы.
Модуль МВ:
Название канала
Номера регистров
Тип функции
Real input module
4 (+5)
Read holding registers
Real input module
10 (+11)
Read holding registers
Модуль МК:
Название канала
Номера регистров
Тип функции
Register input module
51
Read holding registers
Register output module
50
Write multiple registers
8. Подключиться и проверить работоспособность
Для использованих дискретных входов и выходов модуля МК в программе необходимо в
компонентах «Register input module» и «Register output module» задать имя маске входов и
выходов.
Чтобы в программе сослаться на конкретный вход или выход нужно задать имя маски в
программе и через точку указать номер бита нужного входа или выхода.
Нумерация начинается с нуля.
Номер физического
дискретного входа / выхода
1
2
3
N
Номер бита
в маске входов / выходов в программе
0
1
2
N-1
(Пример: группа входов обозначена как «mk_in», значит, чтобы сослаться на первый вход
необходимо в программе писать «mk_in.0», для второго «mk_in.1», для третьего «mk_in.2» и
так далее.
*ПКМ – Нажать правой кнопкой мыши
11
Добавление модулей Mx110 в CODESYS V3.5
1. Device (ПКМ*) – Добавить устройство…
2. Убрать галочку «Группировать по категориям» - Выбрать «Modbus COM», в графе «Имя»
задать имя интерфейсу, например, RS485_1 – ОК
3. Не выходя из окна добавления устройства, выбрать в дереве объектов добавленный
интерфейс RS485_1.
В обновленном окне выбрать «Modbus Master, COM порт» - ОК.
4. Не выходя из окна добавления устройства, выбрать в дереве объектов добавленный
компонент Modbus Master, COM порт.
В обновленном окне выбрать необходимые шаблоны модулей Mx110 или компонент
Modbus Slave (универсальное slave-устройство), которому также, как и интерфейсу, нужно
задать имя:
Далее проводится настройка каждого компонента
5. RS485_1: COM-порт, скорость передачи данных, четность – NONE
6. Modbus_Master: ˅ автоперезапуск соединения
7. Каждому slave-устройству задать адрес.
При добавлении универсального slave необходимо добавить каналы модулей.
Инструкция на странице 17.
12
Подключение модулей ввода / вывода Mx210 по интерфейсу Ethernet
Master
slave
ПЛК
Ethernet
МВ210
slave
МК210
Ethernet
ПК
Основные сетевые настройки slave-устройства:
1. Протокол передачи данных (Modbus TCP)
2. IP-адрес (находящийся в одной локальной сети с мастером)
3. Unit-ID slave-устройства (всегда 1)
Перед подключением модулей 210 линейки, их необходимо настраивать в программе OWEN
Configurator.
Алгоритм настройки модулей Mx210 в программе OWEN Configurator
1. Подключить модуль к ПК через интерфейс Ethernet (питание на модуль необходимо), либо
через интерфейс USB-Device (питание на модуль идет от ПК)
2. Запустить программу OWEN Configurator
3. В выпадающем меню «Интерфейс» во вкладке «Сетевые настройки» выбрать:
• Ethernet (или другую сетевую карту, к которой подключен модуль) — для подключения
по Ethernet.
• STMicroelectronics Virtual COM Port — для подключения по USB (при необходимости
уточнить COM-порт в Диспетчере устройств)
Дальнейшие шаги для поиска устройства зависят от выбора интерфейса.
Чтобы найти и добавить в проект модуль, подключенный по интерфейсу Ethernet, следует:
1. Выбрать «Найти одно устройство».
2. Ввести IP-адрес подключенного устройства.
3. Нажать вкладку «Найти». В окне отобразится модуль с указанным IP-адресом.
Значение IP-адреса по умолчанию (заводская настройка) — 192.168.1.99.
4. Выбрать устройство (отметить галочкой) и нажать ОК. Если устройство защищено паролем, то
следует ввести корректный пароль. Устройство будет добавлено в проект.
Чтобы найти и добавить в проект модуль, подключенный по интерфейсу USB, следует:
1.
2.
3.
4.
5.
В выпадающем меню «Протокол» выбрать протокол Owen Auto Detection Protocol.
Выбрать «Найти одно устройство».
Ввести адрес подключенного устройства (по умолчанию — 1).
Нажать вкладку «Найти». В окне отобразится модуль с указанным адресом.
Выбрать устройство (отметить галочкой) и нажать ОК. Если устройство защищено паролем,
то следует ввести корректный пароль. Устройство будет добавлено в проект.
13
Добавление модулей Mx210 в CODESYS V2.3
Смотреть инструкцию «Добавление модулей Mx110 в CODESYS V2.3». Интерфейс оставить по
умолчанию, у компонента «Universal Modbus device» во вкладке «Параметры модуля» установить IPадрес slave-устройства через двоеточие и TCP:
Далее добавить аналогичные каналы и соответствующие регистры из таблицы (см. стр. 15).
Добавление модулей Mx210 в CODESYS V3.5
1. Device (ПКМ*) – Добавить устройство…
2. Убрать галочку «Группировать по категориям» - Выбрать «Ethernet» – ОК
3. Не выходя из окна добавления устройства, выбрать в дереве объектов добавленный
интерфейс Ethernet.
В обновленном окне выбрать «Modbus TCP Master» - ОК.
4. Не выходя из окна добавления устройства, выбрать в дереве объектов добавленный
компонент Modbus TCP Master.
В обновленном окне выбрать необходимые шаблоны модулей Mx210 или компонент
Modbus TCP Slave (универсальное slave-устройство), которому нужно задать имя:
Далее проводится настройка каждого компонента
5. Ethernet: в графе «Интерфейс» привязать IP-адрес ПЛК с помощью кнопки «…», для этого
необходимо предварительно установить связь с ПЛК.
6. Modbus_TCP_Master: ˅ автоподключение
7. Каждому slave-устройству задать IP-адрес.
8. В шаблонном модуле МВ необходимо установить значение FALSE, если датчики настроены
в программе OWEN Configurator
При добавлении универсального slave необходимо добавить каналы модулей.
Инструкция на странице 17.
14
Основные функции и регистры модулей линеек Mx110 и Mx210
Функции
Чтение (вх/вых) – Read holding registers (Код функции 3)
Запись (вых) – Write multiple registers (Код функции 10/16)
Регистры
МВ110-8А
МК110-8Д.4Р
МВ210-101
МВ210-301
15
Таблица разбиения регистров на биты
Нумерация битов внутри регистров сквозная. 1 регистр = 16 bits
Номер регистра
Номера бит
0
1
2
3
4
5
6
7
8
9
10
…
N
0 – 15
16 – 31
32 – 47
48 – 63
64 – 79
80 – 95
96 – 111
112 – 127
128 – 143
144 – 159
160 – 175
…
(N*16)…(N*16+15)
Первый бит
Последний бит
16
Каналы Modbus Slave (для универсального slave-устройства) в CODESYS V3.5
Подходит для линеек Мx110/210
1. MV110_8A/MV210_101 – Вкладка «Канал Modbus Slave» - Добавить канал… (выполнить два
раза)
Имя
Тип доступа
Время цикла (мс)
Сдвиг READ
Длина
temp1
temp2
Read Holding Registers (Код функции 3)
500
4 / 4000
10 / 4003
2
2. MK_8D_4R/MK210_301 – Вкладка «Канал Modbus Slave» - Добавить канал… (выполнить два
раза)
Имя
Тип доступа
Время цикла (мс)
Сдвиг READ / WRITE
Длина
mk_in
Read Holding Registers
(Код функции 3)
100
51
1
mk_q
Write Multiple Registers
(Код функции 16)
50 / 470
Для модуля МВ
3. Для получения данных с модуля МВ в виде числа с плавающей точкой понадобится
библиотека OwenCommunication
4. В PLC_PRG для модулей МВ110_8А и МВ210_101 необходимо создать следующее:
5. Внутри модуля МВ:
17
Для модуля МК
6. В PLC_PRG создать переменные (например, in1-in8, q1-q4) с типом данных BOOL, каждую в
отдельной строке
7. Внутри модуля МК:
Входы:
Выходы:
18
Подключение СП3xx к ПЛК1xx по интерфейсу RS-485
Master
СП307
slave
ПЛК110
RS-485-2
МВ110
МК110
RS-485-1
Master
slave
slave
СП – Master, рекомендуется использовать отдельный интерфейс связи.
Основные сетевые настройки ПЛК как slave-устройства:
1. Протокол передачи данных - Modbus RTU предпочтительно
2. Скорость передачи данных (9600..115200 bit/sec)
3. Адрес slave-устройства (1..240)
Настройка ПЛК как slave-устройства в CODESYS V2.3
1.
2.
3.
4.
5.
Ресурсы – Конфигурация ПЛК
PLC110_30 (ПКМ*) – Добавить Подэлемент – ModBus (slave)
ModBus (slave) – Modbus[FIX] (ПКМ) – Добавить подэлемент – RS-485-2
RS-485-2 – Вкладка «Параметры модуля» - Установить скорость, протокол – RTU
ModBus (Master) (ПКМ) – Добавить Подэлемент – Выбрать необходимые подэлементы:
Тип данных
REAL
WORD
BOOL
Элемент в Modbus(slave)
Float (добавлять в четный регистр)
2 byte
8 bits
8 bits
Количество занимаемых регистров
2
1
1
Нумерация регистров идет сверху вниз, начиная с нулевого. Нумерация битов сквозная,
также идет сверху вниз (см. страницу Х)
19
Алгоритм настройки СП3xx и создания визуализации в программе Конфигуратор СП300
1.
2.
3.
4.
Подключить СП к ПК через порт USB-Device
Запустить Конфигуратор СП300
Файл – Новый – Выбрать модификацию панели – Далее
В настройках PLC порта оставить режим Modbus RTU Master, нажать на кнопку
5. Установить галочку «Изменить порядок регистров» (для корректной передачи чисел
float с ПЛК110) – ОК – Далее – Готово
6. Файл – Сохранить как…
Основные графические элементы Конфигуратора СП300
- Статический текст
- Цифровой дисплей (отображение значений)
- Цифровой ввод (ввод данных с экрана, используя клавиатуры ввода)
слева направо:
- Индикатор (лампа)
- Переключатель (для кнопок без фиксации)
- Переключатель с индикацией (для кнопок с фиксацией)
- Кнопка перехода на другой экран
- Линейка (для визуального отображения численного значения совместно со шкалой)
- Динамический текст (изменяющийся текст в зависимости от значения привязанного
регистра)
Поменять цвет фона:
→ В дереве объектов найти текущий экран, например, «[00001]Экран», нажать ПКМ –
Свойства – Выбрать цвет фона.
Создать экран:
→ В дереве объектов найти «Экраны», нажать ПКМ – Добавить – Задать имя экрана,
выбрать цвет
20
Создание визуализации в CODESYS V3.5
При отсутствии визуализации в проекте CODESYS V3.5 или необходимости добавить новый
экран визуализации:
1.
2.
3.
4.
Application (ПКМ) – Добавление объекта – Визуализация
Задать необходимое имя экрану визуализации – Добавить
! В компоненте Менеджер визуализации проверить галочку «Использовать строки Unicode»
ПКМ на компоненте самой визуализации – Свойства – вкладка Визуализация
Установить галочку «Использовать заданный размер визуализации» - для СПК107 (800x480),
ПЛК210 (1920х1080)
5. Цвет фона. ПКМ на полотне визуализации - Фон
Настройка сетки (по умолчанию ее нет): Меню «Инструменты» - Опции – Визуализация – Сетка
Основные графические элементы в CODESYS V3.5
- Многофункциональные взаимозаменяемые элементы, с помощью которых можно:
o вывести значения переменных из PLC_PRG
o создать события по нажатию (ввод значения с экрана)
o сделать кнопку/лампу
- Статический текст
- Кнопка
- Группировка элементов внутри рамки, одновременное применение свойств
невидимости и откл.ввода всем элементам группы
- Управление значением переменной
- Невидимая кнопка
- Отображает значение переменной в виде полосы индикатора выполнения
- Линейка (для визуального отображения численного значения совместно со шкалой)
21
Лампа и кнопки для переменных типа BOOL
Спецификаторы
Регистр важен!
Cпецификатор Формат числа
%d
десятичное число
%.2f
действительное число c плавающей
2 – количество дробных разрядов
%s
строка
%%
символ процента
Тип данных
WORD, INT
точкой, REAL
STRING,WSTRING
Отображение временных типов данных на визуализации
- В случае использования спецификатора %t[заполнитель] можно отображать значения
переменных типа TIME, DATE_AND_TIME (DT) и т. д.
- Использование спецификатора %t без форматирования (заполнителя) бесполезно.
- Если помимо времени необходимо отображать сопроводительный текст, то следует
заключать этот текст в одиночные кавычки
Например: %t[HH ‘ч.’ mm ‘мин.’ ss ‘сек.’ ms ‘мс.’]
- Если необходимо отображать в элементе системное время целевого устройства
визуализации, то параметр Текстовая переменная следует оставить пустым
22
WEB-визуализация
Чтобы открыть WEB-визуализацию в браузере, необходимо ввести:
<протокол>://<IP-адрес контроллера>:<порт>/<имя web-страницы>.htm
Протокол – http или https. Порт – используемый порт для выбранного протокола. По
умолчанию используются порты 8080 (http) и 8443 (https). Стандартное имя web-страницы
визуализации – webvisu. Оно может быть изменено при разработке проекта CODESYS. В
проекте может быть добавлено несколько web-страниц. Если установить галочку «Use as default
page», это позволит не указывать адрес web-страницы:
Т.е. в браузере достаточно будет ввести, например: 10.1.140.14:8080
23
Программные компоненты POU (Program Organization Unit)
Функция (FUN):
• Может иметь много исходных данных, но строго один результат.
• Функция возвращает значение, через свое имя.
Функция имеет тип!
• Не имеет внутренней памяти.
• Локальные переменные инициализируются при каждом вызове.
• Удобна для реализации сложных вычислений, например, формул.
• Не рекомендуется использование глобальных переменных в функции.
Функциональный блок (FB):
• Все переменные функционального блока сохраняют значения.
• Функциональный блок может иметь много входов и выходов с разными типами данных.
• Требует объявления для каждого используемого экземпляра.
• При создании экземпляра функционального блока создается новая копия переменных
функционального блока.
Копия кода функционального блока не создается.
• Рекомендуется для программирования повторно используемого кода, например, счетчиков,
таймеров, триггеров и т.д.
Программа (PRG):
• Используется для структурирования приложения
• Программа всегда только одна, создания копий не предусмотрено
• Все переменные сохраняют свои значения
24
Все программные компоненты должны вызываться прямо или косвенно из главной программы
PLC_PRG.
Добавление нового POU
CODESYS V2.3
- Вкладка POU – ПКМ в любом месте – Добавить объект
- Ввести необходимое имя нового POU
- Выбрать тип POU. Для функции необходимо указать результат возвращаемого значения
- Выбрать язык реализации – CFC – ОК
CODESYS V3.5
- ПКМ на Application → Добавление объекта → POU…
- Ввести необходимое имя нового POU
- Выбрать тип POU. Для функции необходимо указать результат возвращаемого значения
- Выбрать язык реализации – Непрерывные функциональные схемы (CFC)
25
Список элементов
FBD операторы (cds 2.3) / Ключевые слова (cds 3.5):
Дискретная логика (логические битовые операторы)
Побитное И
(логическое умножение)
Побитное ИЛИ
(логическое сложение)
BOOL, BYTE, WORD, DWORD,
LWORD
Побитное НЕ
(логическое отрицание)
Побитное исключающее ИЛИ
Арифметические операторы
Сложение значений
переменных
Умножение значений
переменных
Вычитание значений
переменных
BYTE,
WORD, DWORD, LWORD, SINT,
USINT, INT, UINT, DINT, UDINT, LINT,
ULINT,
REAL, LREAL,
TIME,
TIME_OF_DAY (TOD), DATE,
DATE_AND_TIME(DT)
Деление значений
переменных
Остаток от деления
BYTE, WORD, DWORD, SINT, USINT,
INT,UINT, DINT, UDINT
26
Операторы сравнения
Больше
Операнды могут
быть типов
BOOL,
Меньше
BYTE,
WORD,
DWORD,
Больше или равно SINT,
USINT,
INT,
UINT,
Меньше или равно
DINT,
UDINT,
REAL,
LREAL,
Равно
TIME,
DATE,
TIME_OF_DAY,
DATE_AND_TIME,
Не равно
STRING
27
Операторы выбора и ограничения
Возвращает
наибольшее значение
любого типа
Возвращает
наименьшее значение
любого типа
Селектор
(бинарный выбор)
Возвращает одно из двух:
IN_0, если G ЛОЖЬ, или
IN_1, если G ИСТИНА.
G должно быть типа
BOOL
IN0, IN1 и OUT могут
быть любого типа,
Мультиплексор
Возвращает K-е значение
из входных переменных.
IN0, ...,IN_n и OUT могут
быть любого типа,
Переменная K должна
быть BYTE, WORD,
DWORD, SINT,
USINT, INT, UINT, DINT
или UDINT
Ограничитель.
Min задает нижнюю и
Max верхнюю границы
ограничителя.
Если IN больше верхнего
или меньше нижнего
пределов, результат
‘обрезается’
соответственно
до Max или Min.
любого типа
Присвоение значения
Пока значение EN=TRUE,
значение переменной
var1 записывается в var2.
Вход EN должен быть
типа BOOL,
var1 и var2 любого типа
28
Стандартные функциональные блоки
Библиотека STANDARD.lib
Генерирует импульс OUT
по переднему фронту
(FALSE → TRUE)
входного сигнала CLK.
Генерирует импульс OUT
по заднему фронту
(TRUE → FALSE)
входного сигнала CLK.
Триггер с приоритетом на включение
Триггер с приоритетом на выключение
Счетчики
Инкрементный счетчик – на прибавление.
По каждому фронту на
входе CU (переход из FALSE в TRUE)
выход CV увеличивается на 1.
Выход Q устанавливается в TRUE, когда счетчик
достигнет значения заданного PV, счет не
останавливается.
Счетчик CV сбрасывается в 0
по входу RESET = TRUE.
Декрементный счетчик – на вычитание.
Счетчик CV загружается начальным значением,
равным PV по входу LOAD = TRUE.
По каждому фронту на входе CD (переход из FALSE в
TRUE) выход CV уменьшается на 1.
Когда счетчик достигнет 0, счет останавливается,
выход Q переключается в TRUE.
Универсальный счетчик
По фронту на входе CU счетчик увеличивается на 1. По
фронту на входе CD счетчик уменьшается на 1 (до 0).
По входу RESET счетчик CV сбрасывается в 0, по входу
LOAD загружается значением PV.
QU устанавливается в TRUE, когда CV больше или
равен PV.
QD устанавливается в TRUE, когда CV равен 0.
29
Таймеры
Таймер с задержкой включения.
Пока IN равен FALSE,
выход Q = FALSE, выход ET = 0.
Как только IN cтановится TRUE, начинается отсчет времени (в
миллисекундах) на выходе ET до значения, равного PT.
Далее ET не увеличивается.
Q равен TRUE,
когда IN равен TRUE и ET равен PT,
иначе FALSE.
Таким образом, выход Q устанавливается с задержкой PT от
фронта входа IN.
Таймер с задержкой выключения.
Если IN равен TRUE, то выход Q = TRUE и выход ET = 0.
Как только IN переходит в FALSE, начинается отсчет времени
(в миллисекундах) на выходе ET.
При достижении заданной длительности отсчет
останавливается.
Выход Q равен FALSE, если IN равен FALSE и ET равен PT,
иначе - TRUE.
Таймер заданной длительности.
Пока IN равен FALSE, выход Q = FALSE, выход ET = 0.
При переходе IN в TRUE выход Q устанавливается в TRUE и
таймер начинает отсчет времени (в миллисекундах) на
выходе ET до достижения длительности, заданной PT.
Далее счетчик не увеличивается.
Таким образом, выход Q генерирует импульс длительностью
PT по фронту входа IN.
30
Библиотека UTIL.lib
Преобразует значение переменной IN,
принадлежащее одному интервалу в
пропорциональное значение, принадлежащее
другому интервалу.
IN – Входное значение
IN_MIN – Нижнее значение входного диапазона
IN_MAX – Верхнее значение входного диапазона
OUT_MIN – Нижнее значение выходного диапазона
OUT_MAX – Верхнее значение выходного диапазона
OUT – Выходное значение
ERROR – Признак ошибки: TRUE,
если IN_MIN = IN_MAX
или если значение IN вышло за пределы входного
диапазона
Генератор прямоугольных импульсов.
Генератор запускается по входу ENABLE = TRUE.
Длительность импульса задается TIMEHIGH,
длительность паузы TIMELOW.
При переходе ENABLE в FALSE, выход OUT остается
в том состоянии, в котором он был в этот
момент.
Если вам необходимо чтобы выходная переменная
сбрасывалась в FALSE при ENABLE=FALSE, то
добавьте блок AND на выход и на второй вход
подайте ENABLE .
31
Реализует ПИД-закон регулирования.
ACTUAL – измеряемое значение,
SET_POINT – уставка,
KP – коэффициент передачи
TN – постоянная интегрирования (ms),
TV – постоянная дифференцирования (ms),
Y_MAN – значение в ручном режиме,
Y_OFFSET – начальное значение,
Y_MIN – минимальное значение,
Y_MAX – максимальное значение,
MANUAL – вкл. ручного режима,
RESET – сброс,
Y – выходное значение,
LIMITS_ACTIVE – (Y=Y_MIN ИЛИ Y=Y_MAX)
OVERFLOW – переполнение.
ПИД закон регулирования:
TN

1
de(t ) 
Y = Y _ OFFSET + KP  e(t ) +
e(t ) + TV


TN 0
dt 

32
Основные операции, используемые в языке ST
Задание локальные переменных (в окне объявления переменных)
VAR
Имя1 : тип ;
Имя2 : тип := значение; (*комментарий*)
END_VAR
Присвоение (в программе):
Имя1 := значение ;
Имя2 := имя3 ;
Имя4 := выражение ;
ВНИМАНИЕ!!!
Temp1 = 40 условие равенства
Temp1 := 40 присвоение значения
Условие «Если то иначе»:
IF условие THEN
Имя1 := выражение1 ;
ELSE
Имя1 := выражение2 ;
END_IF
Простые операторы:
Арифметические: + - * \
Логические:
AND OR NOT
Сравнения:
> >= < <=
Обращение к функциям:
Имя1 := оператор ( вход1 , вход2 , вход3 ) ;
W1 := SEL ( in1 , 20 , 40 ) ;
R1 := LIMIT ( 0 , R1 , 100 ) ;
R2 := MUX ( W2 , 3.14 , 2.71, 1.41, 9.81 ) ;
R3 := MIN ( 50 , R1 ) ;
выбор по условию
ограничение значения
мультиплексор
выбор минимального значения
Все входы функции должны быть заданы!
33
Объявление экземпляра функционального блока
VAR
Имя1 : тип ;
имя – имя экземпляра функционального блока.
тип – название функционального блока
END_VAR
VAR
Timer1 : TP ;
Timer2 : TP ;
Count : CTUD ;
Blink1 : BLINK ;
END_VAR
Вызов экземпляра функционального блока:
timer1 (IN:= , PT:= , Q=> , ET=> ) ;
timer1(IN:=in1 , PT:=T#2s , Q=>q1 , ET=>T1 ) ;
вызов ф.б.
задание входов и выходов ф.б.
timer1(IN:=in1 , PT:=T#2s , Q=>q1) ;
Не обязательно использовать все входы\выходы блока!
timer1.in := in1 ;
timer1.pt := T#2s ;
timer1( ) ;
q1:= timer1.q ;
задание значения входа IN блока timer1
задание значения входа PT блока timer1
вызов функционального блока timer1 (без задания вх.\вых.)
запись выхода Q блока timer1 в переменную q1
Оператор выбора:
CASE переменная (тип INT) OF
1:
… ;
2:
… ;
4,5,9: … ;
11..15: … ;
ELSE
… ;
END_CASE
34
Вложенные условия:
IF … THEN
…
IF… THEN
IF… THEN
…
ELSE
…
END_IF
…
END_IF
…
ELSE
…
IF … THEN
…
END_IF
END_IF
Работа с POU:
Все функции, функциональные блоки и программы должны прямо или косвенно вызываться из
главной программы PLC_PRG!
Функции
→ функции (SEL, LIMIT)
Функциональные блоки
→ ф-ии и ФБ (объявляются внутри блока)
Программы
→ функции, ФБ и другие программы
PLC_PRG
→ ВСЁ!
Цикл FOR:
FOR переменная (word, int) := нач. зн-е TO кон. зн-е BY шаг DO
…
END_FOR
Работа с массивами:
имя : ARRAY [индекс1,индекс2,индекс3] OF тип ;
arr1 : ARRAY [0..2,0..2,0..2] OF word := 1,1,1,2,2,2,3,3,3 ;
arr2 : ARRAY [0..2,0..2,0..2] OF word := 3(1),3(2),3(3) ;
arr3 : ARRAY [0..2,0..2,0..2] OF word := 3(1),2(2),2,3 ; (остальные = 0)
присвоение: arr3[1,2,1] := значение ;
35
Download