Овен плк примеры программ

Содержание

Если у вас есть проблема со скачиванием файлов подробнее.

Документация по CoDeSys

Первые шаги с CoDeSys

Руководство пользователя по программированию ПЛК в CoDeSys

Дополнение к руководству пользователя по программированию ПЛК в CoDeSys

Конфигурирование области ввода/вывода ПЛК.

Руководство пользователя для v2.0

Конфигурирование области ввода/вывода ПЛК.

Видео инструкции и примеры

Запуск CoDeSys, создание проекта

Установка соединения со средой программирования по RS-232

Установка соединения со средой программирования по Ethernet

Подключение модуля в PLC_Configuration

Задание значений в PLC_Configuration

Работа в PLC_Browser

Примеры работ и утилит

С примерами работ и утилит вы можете ознакомиться на нашем форуме .

Библиотеки CoDeSys

Автоматический установщик библиотек (ПЛК100/150/154/110/160/63/73)

Скачать библиотеку с описанием

Библиотеки для контроллеров ОВЕН ПЛК100/150/154 (Версия 8.12)

Скачать библиотеку с описанием

Часть 13: Разработка примера проекта для ОВЕН ПЛК 73

Библиотеки для контроллеров ОВЕН ПЛК110/160 (Навигатор ПЛК110/160 версия 6)

Скачать библиотеку с описанием

Библиотеки для контроллеров ОВЕН ПЛК63 (Навигатор ПЛК63 версия 5)

Скачать библиотеку с описанием

Скачать утилиты с описанием

Утилиты EasyWorkPLC и PLC_IO предназначены для работы с контроллерами серий ОВЕН ПЛК110/160, ОВЕН ПЛК100/150/154, и не предназначены для работы с контроллерами серии ОВЕН ПЛК 63/73.

Сервисное ПО для контроллеров ОВЕН ПЛК 100/150/154

Действующая программа обновления встроенного ПО контроллеров ОВЕН ПЛК версии 2.14.0

Установщик Target файлов для следующих моделей ПЛК: ПЛК100, ПЛК150, ПЛК154

Автоматический установщик (400 КБ):

Установщик Target файлов для всех моделей ПЛК: ПЛК110, ПЛК160, ПЛК100, ПЛК150, ПЛК154

Автоматический установщик (500 КБ):

Прошивка с помощью команды UpdateCore скачать описание.

Драйвер порта usb для программирования ПЛК с ПК

Драйвер для ОС Windows 2000/XP/Vista/W7 скачать здесь

Программы калибровки аналоговых входов

Для target файла версии 2.14 скачать здесь (590 Kb).

Диск ПЛК

DVD V.3 для ОВЕН ПЛК (CoDeSys v 2.3). Скачать (440 Мб).

ОВЕН ftp

Здесь Вы можете скачать быстрее здесь .

Если у вас есть проблема со скачиванием файлов подробнее.

Сервисное ПО для контроллеров ОВЕН ПЛК 110/160

Действующая программа обновления встроенного ПО контроллеров ОВЕН ПЛК версии 2.14.0

Установщик Target файлов для следующих моделей ПЛК: ПЛК110, ПЛК160

Автоматический установщик (400 КБ)

Установщик Target файлов для всех моделей ПЛК: ПЛК110, ПЛК160, ПЛК100, ПЛК150, ПЛК154

Автоматический установщик (500 КБ)

Прошивка с помощью команды UpdateCore скачать описание.

Драйвер порта usb для программирования ПЛК с ПК

Драйвер для ОС Windows 2000/XP/Vista/W7 скачать здесь

Программирование ОВЕН ПЛК110. Часть 1. Создание первого проекта в CODESYS v2.3

Диск ПЛК

DVD V.3 для ОВЕН ПЛК (CoDeSys v 2.3). Скачать (440 Мб).

ОВЕН ftp

Здесь Вы можете скачать быстрее здесь .

Если у вас есть проблема со скачиванием файлов подробнее.

Сервисное ПО для контроллеров ОВЕН ПЛК 63/73

Действующая программа обновления встроенного ПО контроллеров ОВЕН ПЛК версии 2.12/2.15

Установщик Target файлов для следующих моделей ПЛК: ПЛК 63

Автоматический установщик (400 КБ):

Программа тиражирования

Программа тиражирования предназначена для копирования программы из одного контроллера на другой без использования CoDeSys. Данная программа не позволяет считать исходный код проекта, она копирует образ памяти с программой(в компилированном виде) и позволяет распространить его на подобные устройства. Программа позволяет копировать данные только на аналогичные устройства, например с ПЛК73M только на ПЛК73М.

Диск ПЛК

DVD V.3 для ОВЕН ПЛК (CoDeSys v 2.3). Скачать (440 Мб).

Сервисное ПО для контроллера ОВЕН ПЛК110(М01)

Действующая программа обновления встроенного ПО контроллеров ОВЕН ПЛК110

Источник: manometr-com.ru

Pump Station Framework для ПЛК ОВЕН 110-32м2

Привет, Хабр! Это мой первый опыт написания здесь, если что, уж сильно не пинайте). Сам я программист самоучка. Новый язык Structured Text и среду разработки Codesys разбирал по мануалу и стандарту МЭК-61131-3. В статье будет рассматриваться легкий самописный фреймворк для быстрой сборки насосной станции реализованной на ПЛК 110-32м2 фирмы ОВЕН.

Читайте также:
Как прервать программу в мультиварке поларис

Посчастливилось мне на работе из рядового слесаря по КИПиА перевестись в инженеры-программисты в состав группы комплексной автоматизации, в которой кроме меня состоял только начальник этой самой группы.

Большую часть парка промышленного оборудования на предприятии фирмы ОВЕН (это различные датчики температуры и давления, ТРМы, блоки питания, ПЛК (110) аналоговые и дискретные модули ввода-вывода (110), сенсорные панели (СП307 и СП310), и сетевые шлюзы для доступа к сервису OwenCloud, частотные преобразователи(ПЧВ). Основной контроллер который мы используем — ПЛК 110-60 (для автоматизации котельных) и ПЛК 110-32 (для автоматизации ЦТП).

Разработка программ для этих ПЛК происходит в Codesys 2.3. Поскольку Программистских академий мы не кончали, а курсов по промышленному программированию на языках МЭК никто отродясь не видывал, пришлось с нуля осваивать новую стезю. О первый мой рабочий код.. я буду плакать по тебе кровавыми слезами. Надеюсь сейчас мой код выглядит получше, чем тогда..

Случилось так что на ЦТП вышла из строя, по сроку годности, одна импортная насосная станция. И светлым умам нашего предприятия пришла идея собрать свою, на ПЛК. набросали хардкодингом-быдлокодингом одну программу.. Через полгода скачком напряжения убило насосную станцию на другом объекте.. Снова ПЛК и снова захардкодили программу.

Местному руководству так понравилась идея собственной разработки насосной станции, что при ближайшей реконструкции объекта заменяла старую станцию — собственной разработкой ведь экономия средств то какая. Но конфигурация станций всегда разная: тут два насоса, там пять; на этом объекте надо чтобы насосы поочередно переключались, на следующем чтобы работали в каскадном режиме. Разные запросы были. И тут-то я созрел — нужен какой-нибудь фреймворк, чтобы можно было быстро собирать эти станции различной конфигурации.

Для работы нам понадобятся:

  • Codesys 2.3
  • Таргет-файл для ПЛК 110-32м2
  • Подключить к проекту библиотеку Util.lib
  1. Создаем новый проект. выбираем конфигурацию нашего ПЛК.

  1. Главная программа будет на языке CFC. Так наглядней и проще для тех кто не знаком с языками программирования.

По ТЗ у нас на ПЛК приходят сигналы:

  1. Защита по сухому ходу (низкое давление на входе насоса).
  2. Защита по превышению давления на выходе насоса.
  3. Внешняя авария (авария частотного преобразователя).
  4. Статус частотного преобразователя «Работа» (RUN).
  1. Запустить частотный преобразователь.
  2. Квитировать/сбросить аварию частотного преобразователя.

Импортируем в программу нашу виртуальную модель ПЛК, структуру для ее работы и методы.

Сложим наши свежие импорты в папочку чтоб не растерять.Структуры необходимые для работы блока ПЛК110Вид ПЛК110-32 на языке CFC

Теперь к этому блоку мы можем как на электрической схеме подключить наши сигналы к дискретным входам. Допустим у нас станция будет из трех насосов. Подключаем наши сигналы виртуальными проводочками. Для работы с входами ПЛК мы их упаковываем в inputs_plc имеющей тип данных classPLC32m2StatusInputs

inputs_plc присваиваем соответствующую структуры данных.

Для работы с этими данными у нас имеются методы: get_fdi и get_di

get_fdi(number_fdi: int, inputs_plc: classPLC32m2StatusInputs) -> bool; get_di(input_number: int, inputs_plc: classPLC32m2StatusInputs) -> bool;

Подключим наши выходные сигналы к выходам. Для управления выходами добавляем вспомогательный блок get_status_outputs, он принимает на соответсвующий вход булевое состояние и упаковывает все в тип данных classPLC32m2StatusOutputs, с которым работает блок main_plc.

К входам блока outputs мы будем подключать непосредственно результат логики работы нашего контроллера.

Эти блоки для работы с ПЛК110-32 универсальны и могут использоваться в любых других проектах под этот контроллер. Визуально все в одном месте и при онлайн отладке удобно наблюдать за состоянием входов-выходов ПЛК.

Для получения давления на входе и выходе насоса используются датчики 4-20мА. Сигнал в контроллер приходит через модуль аналоговых входов МВ110-8а. Импортируем модель этого модуля в проект.

В PLC_PRG добавляем наш блок аналоговых входов. analog_inputs упаковываются в соответствующий класс classInfoAnalogInputModule

Для работы необходим вспомогательный блок с настройками SetChannelsAnalogInputsModule. Этот блок содержит конфигурацию входов модуля. По умолчанию настройки всех каналов (0-100, 4-20мА).

Не забываем проставить адреса регистров которые мы будем считывать (см инструкцию Приложение В, таблица В.4 — регистры протокола modbus.

Сконфигурировав канал аналогово модуля можем импортировать блок для датчика 4-20мА.

Метод get_channel_current_value(number_channel: int, analog_inputs: classInfoAnalogInputModule) позволяет получить значение с АЦП соответствующего канала.

И собрав нехитрую конструкцию, получить информацию о давлении которое приходит на датчик.

Блок с параметрами датчика нужен для соответствующего масштабирования согласно параметрам реального датчика.

Насосом у нас управляет частотный преобразователь. Импортируем содержимое папки invertor_drive.

Функциональный блок частотника и его методы.

Добавляем блок в проект, подключаем данные со входов ПЛК, используя метод get_di. ain_value (float) — это аналоговый вход частотника, подключаем туда наше давление, которое мы собираемся контролировать. set_point (float) — это уставка по давлению.

start_id (bool) — сигнал на старт частотного преобразователя; auto_id (bool) — когда True, то работает ПИД-регулятор, когда False — режим manual; manual_hz — значение выходной частоты в режиме manual (Hz) ;active_id (bool) — флаг готовности к работе насоса; alarm_on (bool) — это флаг аварийного состояния, когда он активен, частотник не стартует. P, I, D — это коэффициенты регулятора, по умолчанию (2, 10, 0). min, max _range — это нижний и верхние пределы значения на выходе регулятора. aout_value — сюда мы подключим частоту на выходе регулятора и она на выходе автоматически масштабируется в значение тока 4-20мА.

Читайте также:
Кто победит в программа один в один

Для регулятора импортируем блок распаковки настроек регулятора.

PID регулятор возьмем из библиотеки Util.lib которая идет в комплекте с Codesys (через менеджер библиотек добавляем в проект).

Частотник готов к работе и теперь им можно управлять.

Вывод частоты преобразовывается в токовый сигнал отправляется на модуль аналогового вывода.

Реализация модуля аналогового вывода.

Для работы насосной станции предусмотрены 3 режима. Single — одиночный режим работы, когда выбираем насос и он всегда работает; Cycle — режим циклического переключения насосов. Задаем время переключения и активные насосы по очереди работают. Cascade — режим каскадного включения насосов, при недостатке давления на выходе. Чтобы насос участвовал в работе его флаг active должен быть True

Блоки режимов работы станции.

Каждый блок может управлять до 8-ми насосов. Притом для цикла и каскада необходимо более 2х активных насосов.

Рулит этими режимами — селектор.

В селекторе предусмотрен режим обработки ошибок, например таких как: не выбран режим работы или не задан опорный насос и пр.

Обработкой всех ошибок занимается alarm_manager. Для аварий частотного преобразователя сделан свой блок. Сюда собираются все аварийные флаги и в случае нештатной ситуации генерируется код аварии и сообщение.

Менеджер возвращает нам флаг аварии, код аварии и расшифровку в виде информационного сообщения.

Не забываем вывести наши выходные сигналы на выходы ПЛК.

Конфигурируем выходы ПЛК.

Можно запустить эмуляцию и проверить как работают режимы.

Для работы функциональных блоков в фреймворке реализованы functions project. Простенькие функции для работы с массивами, функция масштабирования диапазона и функция для задания времени.

Общие функции фреймворка.

Вот в принципе и всё. Я надеюсь что основная мысль понятна. С помощью фреймворка для контроллера буквально за 15-20 минут можно реализовать программу для нескольких групп насосов работающих независимо друг от друга. Останется дело за малым, сконфигурировать вывод параметров на HMI. Но об этом в следующий раз.

Источник: habr.com

Настройка обмена с помощью библиотеки OwenCommunication в среде CODESYS V3.5

Автоматизация пропарочных камер завода железобетонных шпал

Среда разработки CODESYS V3.5 используется для программирования контроллеров ОВЕН ПЛК2хх и СПК1хх. Одной из наиболее важных задач контроллеров является обмен данными с другими устройствами. В качестве основного коммуникационного протокола применяется Modbus. Среда CODESYS включает в себя компоненты для настройки обмена по этому протоколу.

Они являются простыми в использовании, но имеют ряд ограничений, которые в некоторых случаях мешают их применению. Чтобы предоставить клиентам расширенный функционал для настройки обмена, компания ОВЕН разработала библиотеку OwenCommunication.

Стандартные средства конфигурирования CODESYS

Стандартные средства CODESYS позволяют настраивать обмен через дерево проекта (рис. 1). Удобство использования этих средств заключается в том, что пользователю не требуется обладать навыками программирования – достаточно добавить требуемые компоненты и задать их параметры.

Чтобы еще больше упростить процесс настройки обмена, специалисты ОВЕН разработали шаблоны для опроса модулей ввода-вывода Mx110/Mx210 и других приборов ОВЕН. Шаблоны включают в себя настроенные каналы опроса для основных параметров устройства. Все, что нужно сделать для опроса прибора через шаблон – добавить его в проект, указать адрес и привязать к нужным каналам переменные программы.

Стандартные средства конфигурирования имеют ряд ограничений, которые в некоторых случаях затрудняют их использование. Эти ограничения можно разделить на три основные группы.
Первое ограничение связано со сложностью изменения настроек обмена из кода программы. Изменение настроек может потребоваться в тех случаях, когда настройки опрашиваемых устройств (например, их адреса) заранее неизвестны, и оператор должен задать их через визуализацию. Стандартные средства CODESYS позволяют менять только ряд настроек, и пользователю придется самостоятельно организовывать их применение после каждой перезагрузки (по умолчанию будут применяться настройки из дерева проекта).

Второе ограничение – количественное. Например, существует ограничение на количество добавляемых slave-устройств, каналов slave-устройств, регистров в режиме Slave и т.д.
Третье ограничение – функциональное. Например, в режиме Slave нельзя изменить значения holding регистров ПЛК из его программы – то есть отсутствует область памяти, которая могла бы изменяться как со стороны ПЛК, так и со стороны опрашивающего его master-устройства.

Библиотека OwenCommunication лишена всех этих ограничений и предоставляет пользователю дополнительный функционал по настройке обмена. Сравнение библиотеки и стандартных средств конфигурирования приведено в табл. 1.

Библиотека OwenCommunication

  • Блоки управления интерфейсами (COM_Control, TCP_Client).
  • Блоки для реализации обмена по Modbus (MB_SerialRequest, MB_SerialSlave, MB_TcpRequest, MB_TcpSlave).
  • Блоки для реализации нестандартных протоколов (UNM_SerialRequest, UNM_TcpRequest, UNM_UdpRequest).
  • Блоки и функции конвертации данных (REAL_TO_WORD2, WORD2_TO_REAL и т.д.).
Читайте также:
Как менять айпи адрес на компьютере программа

Все функциональные блоки имеют единообразный интерфейс (аналогичный CAA-библиотекам), что упрощает их использование (рис. 2). Так как стандарт Modbus не специфицирует никаких типов данных (вся информация передается в виде последовательностей 16-битных регистров; в CODESYS такому регистру соответствует тип WORD), то библиотека содержит готовые блоки для конвертации данных типов REAL, DWORD и т.д. Эти блоки могут также использоваться в сочетании со стандартными компонентами Modbus.

Рис.2.

Помимо отсутствия ограничений, присущих стандартным компонентам CODESYS, библиотека OwenCommunication включает в себя дополнительный функционал.
Блок MB_TcpRequest, помимо протокола Modbus TCP, позволяет использовать протокол Modbus RTU over TCP. Этот протокол может потребоваться в тех случаях, когда slave-устройство подключается через конвертер интерфейсов Ethernet/RS-485 или, например, GPRS-модем с интерфейсом RS-485.

Блок MB_TcpSlave поддерживает функцию Modbus 20 (0x16) Read File Record, которая используется для считывания файлов, и позволяет, в частности, Modbus TCP-клиенту загружать файлы архивов. OPC-cервер компании ИнСАТ MasterOPC Universal Modbus Server содержит готовый скрипт, который считывает архивные данные с контроллера и предоставляет SCADA-системе доступ к ним через интерфейс OPC HDA. Таким образом, в случае разрыва и восстановления связи с контроллером SCADA сможет выгрузить сохраненные в нем исторические данные и скопировать их в свою базу данных, сохранив «бесшовность» архива.

Блок MB_SerialSlave поддерживает работу по протоколу Modbus ASCII. При этом блок автоматически определяет протокол запроса (RTU или ASCII) и отправляет ответ в нужном формате. Кроме того, если блоку задан адрес 255, то он отвечает на запросы по любому адресу. Это удобно на этапе тестирования, когда требуется сэмулировать наличие в сети нескольких slave-устройств с разными адресами.

Блоки MB_SerialSlave и MB_TcpSlave предоставляют пользователю информацию о получаемых запросах, что дает возможность в программе определить момент получения новой команды записи (и, например, однократно проверить корректность полученных значений). Также можно запретить обработку определенных запросов – например, заблокировать возможность записи или чтения определенных диапазонов регистров. Кроме того, блоки позволяют установить начальный адрес регистров slave’a и изменить порядок байт в буфере данных (это удобно в ситуациях, когда поменять порядок байт в master-устройстве невозможно – например, его уже нельзя перепрограммировать).

Реализация нестандартных протоколов

Несмотря на распространенность протокола Modbus, некоторые производители вместо его поддержки разрабатывают собственные протоколы обмена. На рынке представлено достаточно устройств (тепло- и электросчетчиков, газоанализаторов, весоизмерительных преобразователей и т.д.), для опроса которых потребуется реализовать в программе контроллера поддержку нестандартного протокола. Библиотека OwenCommunication предоставляет пользователю готовые блоки (рис. 3) для отправки произвольного запроса и получения ответа по интерфейсу RS-485/RS-232 или Ethernet (TCP, UDP). Это позволяет программисту абстрагироваться от «коммуникационных» аспектов задачи и сосредоточиться на написании блоков формирования запросов и разбора ответов.

Рис.3.

В будущем планируется разработка отдельной библиотеки OwenVendorProtocols, которая будет содержать блоки опроса наиболее используемых тепло- и электросчетчиков.

Особенности реализации библиотеки

Блоки библиотеки выполняются асинхронно по отношению к циклу контроллера – то есть их вызовы не являются блокирующими. Выполнение одного блока занимает несколько циклов контроллера, что позволяет снизить влияние работы библиотеки на время цикла и не создает непредвиденных задержек. По этой же причине библиотека не позволяет «ускорить» обмен – частота опроса при использовании ее блоков не превышает возможности стандартных средств CODESYS и в отдельных ситуациях даже может быть несколько ниже.

Примеры и документация

Библиотека OwenCommunication доступна для загрузки на сайте ОВЕН в разделе CODESYS V3/Библиотеки и компоненты. Описание и примеры использования библиотеки приведены в документе CODESYS V3.5. Настройка обмена по протоколу Modbus. На YouTube-канале ОВЕН доступны видеоуроки по работе с библиотекой.

Характеристика

Стандартные средства

OwenCommunication

Общие характеристики

Управление обменом из кода программы

С существенными ограничениями

Modbus Serial Master

Макс. число каналов опроса

для одного slave-устройства

Modbus Serial Slave

Две независимых области памяти:

Одна область памяти

Изменение значений holding регистров из кода программы

Макс. число регистров

500 Input + 500 Holding

Modbus TCP Master

Макс. число опрашиваемых

Макс. число каналов опроса

для одного slave-устройства

Modbus TCP Slave

Две независимых области памяти:

Одна область памяти (как в ПЛК1хх)

Изменение значений holding-регистров из кода программы

Макс. число регистров

4096 Input + 4096 Holding

Издание зарегистрировано Федеральной службой по надзору в сфере связи, информационных технологий и массовых коммуникаций. Свидетельство о регистрации средств массовой информации ПИ № ФС77-68720.

Источник: aip.com.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru