Конфигурирование корзины субмодулей ПЛК-40: различия между версиями
Строка 67: | Строка 67: | ||
− | Компилируем (F11), загружаем (Alt+F8) и выполняем проект (F5), зелёные индикаторы на против субмодуля сигнализируют об успешном обмене, статистика обмена отображает текущее значение отправленных и полученных данных, а также количество ошибок(число неответов в процентном соотношении) . | + | |
+ | Компилируем (F11), загружаем (Alt+F8) и выполняем проект (F5), зелёные индикаторы на против субмодуля сигнализируют об успешном обмене, статистика обмена отображает текущее значение отправленных и полученных данных, а также количество ошибок(число неответов в процентном соотношении) . При замыкании дискретного входа мы видим, что сигнал получен, а соотнесение передаст значение сигнала переменной в проекте. | ||
+ | |||
+ | [[Файл:КорзинаПЛК - Проверка состояния субмодуля в режиме отладки.png|центр|мини|447x447пкс|Проверка состояния субмодуля в режиме отладки]] | ||
+ | |||
+ | Индикация обмена на против каждого субмодуля позволяет оперативно определить проблему работы субмодуля, например если пользователь перепутал расположение субмодулей или установил в корзину не существующий субмодуль, то напротив проблемного субмодуля будет изображён красный треугольник. | ||
+ | |||
+ | Ниже показан пример ошибочной установки субмодулей в слоты A и B. | ||
+ | |||
+ | [[Файл:КорзинаПЛК - некорректная установка модуля в слот.png|центр|мини|460x460пкс|Некорректная установка модуля в слот]] | ||
+ | |||
+ | |||
+ | Для управления релейными выходами достаточно реализовать соотнесение переменной с каналами субмодуля '''R'''. | ||
+ | |||
+ | Для проверки исправности работы выходов без соотнесения переменной, в столбец «'''Подготовленное значение'''» требуется установить значение '''TRUE''', для этого этого необходимо кликнуть левой клавишей мыши в поле столбца на против канала модуля и нажать (Ctrl+F7). | ||
+ | |||
+ | [[Файл:КорзинаПЛК - Проверка срабатывания релейного выхода.png|центр|мини|461x461пкс|Проверка срабатывания релейного выхода]] | ||
+ | |||
+ | |||
+ | При необходимости можно реализовать инверсную логику срабатывания выхода, для этого в поле «'''Тип контакта выхода 1'''» нужно установить значение 1(NC) , тогда релейный выход будет работать инверсно и по умолчанию будет иметь замкнутый контакт. Аналогичная настройка также имеется у субмодуля '''DI'''. | ||
+ | |||
+ | Субмодуль '''TMP''' по умолчанию отображает значение в '''Ом''', в качестве теста к каналам модуля подключены сопротивления номиналом 61.4 и 66.6 '''Ом''', в полях «'''Тип термосопротивления входа 1'''» и «'''Тип термосопротивления входа 2'''» указывается тип датчика. После установки нужного типа датчика, значение канала будет отображать температуру в градусах Цельсия. | ||
+ | |||
+ | [[Файл:КорзинаПЛК - Проверка чтения каналов субмодуля TMP.png|центр|мини|480x480пкс|Проверка чтения каналов субмодуля TMP]] | ||
+ | |||
+ | |||
+ | Субмодуль '''AI''' имеет четыре универсальных конфигурируемых канала, рассмотрим вариант настройки датчиков помощью структуры '''TSensorsStruct'''. | ||
+ | |||
+ | В программу '''PLC_PRG''' добавим метод инициализации датчиков, для этого кликнем '''ПКМ''' по программе '''PLC_PRG''' из контекстного меню выберем пункт «'''Добавление объекта'''», далее «'''Метод'''», зададим название метода '''InitSensors''', возвращаемое значение оставим пустым и нажмём кнопку «'''Добавить'''». В программе объявим новую переменную '''bInitSensors'''. | ||
+ | |||
+ | [[Файл:КорзинаПЛК - Добавление метода .png|центр|мини|476x476пкс|Добавление метода ]] | ||
+ | |||
+ | |||
+ | Опишем реализацию метода как показано ниже. | ||
+ | |||
+ | [[Файл:КорзинаПЛК - Описание реализации метода.png|центр|мини|481x481пкс|Описание реализации метода]] | ||
+ | |||
+ | |||
+ | Добавим вызов метода в основной программе '''PLC_PRG'''. | ||
+ | |||
+ | [[Файл:КорзинаПЛК - Добавление вызова метода в основной программе.png|центр|мини|481x481пкс|Добавление вызова метода в основной программе]] | ||
+ | |||
+ | |||
+ | Далее производим соотнесение переменных структуры с каналами субмодуля '''AI''', компилируем (F11), загружаем (Alt+F8) и выполняем проект (F5). | ||
+ | |||
+ | Первый канал субмодуля считывает тестовое значение задатчика тока равное '''20 мА''', тип значения автоматически пересчитывается по установленному диапазону датчика, мы можем увидеть полученное значение '''100'''. | ||
+ | |||
+ | Статус первого канала отображает код шибки равный нулю, что свидетельствует об успешном чтении значения сигнала. Расшифровка кодов ошибок каналов представлена в столбце «'''Описание'''». | ||
+ | |||
+ | [[Файл:КорзинаПЛК - Проверка чтения каналов субмодуля AI.png|центр|мини|665x665пкс|Проверка чтения каналов субмодуля AI]] |
Текущая версия на 09:13, 4 мая 2022
1 Создание нового проекта в CODESYS V3.5 и настройка параметров устройства
Рассмотрим пример создания проекта с использованием ПЛК-40, содержащего субмодули дискретных входов, релейных выходов, аналоговых входов и входов термосопротивлений. В качестве примера конфигурации возьмём субмодули DI, R, AI, TMP.
Создадим стандартный проект, в среде CODESYS 3.5 и подключим его к контроллеру. Двойным кликом мыши по Device(Agava PLC-40/50 TV) откроем настройки устройства и выберем пункт «Установки ПЛК», опции «Всегда обновлять переменные:» зададим параметр «Включено 2(всегда в задаче цикла шины)».
2 Добавление нового устройства в дерево проекта
Для добавления в проект корзины субмодулей ПЛК-40, кликнем правой клавишей мыши по устройству Device(Agava PLC-40/50 TV) и в открывшемся контекстном меню выберем пункт «Добавить устройство».
В открывшемся окне выбираем группу «Разн.», далее выбираем пункт из списка ModulesPLC-40, нажимаем кнопку «Добавить устройство». После того как устройство добавлено в дерево проекта, нажимаем кнопку «Закрыть».
3 Подключение субмодулей к слотам корзины ПЛК-40
После того как корзина субмодулей ПЛК-40 добавлена в дерево проекта, можно приступать к конфигурации субмодулей. Текущее расположение субмодулей в корзине ПЛК-40, в тестовой конфигурации имеет следующий порядок:
СЛОТ А - Субмодуль DI
СЛОТ B - Субмодуль R
СЛОТ C - Блок питания
СЛОТ D - Пустой слот
СЛОТ E - Субмодуль TMP
СЛОТ F - Субмодуль AI
Для подключения субмодуля к слоту в корзине ПЛК-40 кликнем правой клавишей мыши по слоту, в открывшемся контекстном меню выберем пункт «Подключить устройство»
В открывшемся окне укажем нужный тип субмодуля, в нашем случае это DI, далее двойным кликом мыши подключим субмодуль. Аналогичным способом не закрывая окно, укажем нужные субмодули и подключим к слотам.
После завершения конфигурации закроем окно по нажатию кнопки «Закрыть».
4 Соотнесение входов и выходов с каналами субмодулей
После того как формирование корзины ПЛК-40 завершено, можно приступать к настройке субмодулей. Для настройки субмодуля DI дважды кликнем по нему левой клавишей мыши и выберем пункт «Internal Соотнесение входов/выходов».
Столбец «Переменная» позволяет создать соотнесение переменной проекта с каналом субмодуля. В качестве теста можно создать переменную нужного типа и сделать соотнесение с каналом субмодуля или использовать готовую структуру сигнала TSensorsStruct. В данном примере будет рассмотрено использование структуры TSensorsStruct.
Объявим необходимые экземпляры структур TSensorsStruct в программе PLC_PRG.
В окне настроек сумодуля DI выполним соотнесение структуры с каналами. Для этого кликнем левой клавишей мыши в поле столбца «Переменная» и нажмём кнопку с тремя точками, в открывшемся окне выберем Application -> sDI -> bValue и нажмем ОК.
Так как объявленные переменные представлены массивом, указываем соответствующий индекс нужного элемента массива.
Компилируем (F11), загружаем (Alt+F8) и выполняем проект (F5), зелёные индикаторы на против субмодуля сигнализируют об успешном обмене, статистика обмена отображает текущее значение отправленных и полученных данных, а также количество ошибок(число неответов в процентном соотношении) . При замыкании дискретного входа мы видим, что сигнал получен, а соотнесение передаст значение сигнала переменной в проекте.
Индикация обмена на против каждого субмодуля позволяет оперативно определить проблему работы субмодуля, например если пользователь перепутал расположение субмодулей или установил в корзину не существующий субмодуль, то напротив проблемного субмодуля будет изображён красный треугольник.
Ниже показан пример ошибочной установки субмодулей в слоты A и B.
Для управления релейными выходами достаточно реализовать соотнесение переменной с каналами субмодуля R.
Для проверки исправности работы выходов без соотнесения переменной, в столбец «Подготовленное значение» требуется установить значение TRUE, для этого этого необходимо кликнуть левой клавишей мыши в поле столбца на против канала модуля и нажать (Ctrl+F7).
При необходимости можно реализовать инверсную логику срабатывания выхода, для этого в поле «Тип контакта выхода 1» нужно установить значение 1(NC) , тогда релейный выход будет работать инверсно и по умолчанию будет иметь замкнутый контакт. Аналогичная настройка также имеется у субмодуля DI.
Субмодуль TMP по умолчанию отображает значение в Ом, в качестве теста к каналам модуля подключены сопротивления номиналом 61.4 и 66.6 Ом, в полях «Тип термосопротивления входа 1» и «Тип термосопротивления входа 2» указывается тип датчика. После установки нужного типа датчика, значение канала будет отображать температуру в градусах Цельсия.
Субмодуль AI имеет четыре универсальных конфигурируемых канала, рассмотрим вариант настройки датчиков помощью структуры TSensorsStruct.
В программу PLC_PRG добавим метод инициализации датчиков, для этого кликнем ПКМ по программе PLC_PRG из контекстного меню выберем пункт «Добавление объекта», далее «Метод», зададим название метода InitSensors, возвращаемое значение оставим пустым и нажмём кнопку «Добавить». В программе объявим новую переменную bInitSensors.
Опишем реализацию метода как показано ниже.
Добавим вызов метода в основной программе PLC_PRG.
Далее производим соотнесение переменных структуры с каналами субмодуля AI, компилируем (F11), загружаем (Alt+F8) и выполняем проект (F5).
Первый канал субмодуля считывает тестовое значение задатчика тока равное 20 мА, тип значения автоматически пересчитывается по установленному диапазону датчика, мы можем увидеть полученное значение 100.
Статус первого канала отображает код шибки равный нулю, что свидетельствует об успешном чтении значения сигнала. Расшифровка кодов ошибок каналов представлена в столбце «Описание».